javascript - 如何防止 JS 中出现“无法解构...”错误?
问题描述
如何在此代码中防止错误“无法解构未定义或 null 的‘字段’”:
const [{ field }, { field2 }] = await Promise.all([asynchronous operations...])
解决方案
这是使用 3rd 方库 ( async-af
) 的一种可能解决方案。
const input = [Promise.resolve(null), Promise.resolve({field2: 'b'})];
(async () => {
const [{field}, {field2}] = await AsyncAF(input).map(
result => result != null ? result : {field: null, field2: null}
);
console.log(field, field2);
})();
<script src="https://unpkg.com/async-af@7.0.10/index.js"></script>
或者,如果您想使用默认值:
const input = [Promise.resolve(null), Promise.resolve({field2: 'b'})];
(async () => {
const [{field = 'defaultValue'}, {field2 = 'defaultValue'}] = await AsyncAF(input)
.map(result => result != null ? result : {});
console.log(field, field2);
})();
<script src="https://unpkg.com/async-af@7.0.10/index.js"></script>
推荐阅读
- git - 如何撤消我在 Git 中的最后一次提交并存储这些更改?
- java - 如何阻止 cron 作业创建 attach_pid 文件?
- javascript - 未捕获的类型错误:即使在删除所有节点和 svg 后,也无法在数字“1”上创建属性“vx”得到此错误
- elasticsearch - 将 Logstash 输入发送到多个输出
- python - 如何在python中从字典中替换NaN
- swift - 快速更新领域中的一系列项目
- php - 使用 file_put_content 上传图像数据时松散的 Mime 类型
- python - Google Colaboratory 本地主机中没有 tensorflow
- sql - PostgreSQL 获取带有物品的订单
- node.js - DynamoDB 数据模型