javascript - 映射数组返回未解决的承诺
问题描述
我有一个值数组,对于每个值我想返回一个在承诺中使用该值的对象,我有以下代码:
const arr= serieses.map(async x => {
const seriesId = await getSeriesIDFromName(x);
return { part_id: partID, door_series_id: seriesId[0]["id"] };
});
当我在一切完成后打印 arr 时,我得到了这个
[
Promise { <pending> },
Promise { <pending> },
Promise { <pending> },
Promise { <pending> },
Promise { <pending> },
Promise { <pending> }
]
但是如果我在返回语句之前打印每个值,我会得到我需要的,
{ part_id: 1, door_series_id: 1 }
{ part_id: 1, door_series_id: 12 }
{ part_id: 1, door_series_id: 15 }
{ part_id: 1, door_series_id: 16 }
{ part_id: 1, door_series_id: 8 }
{ part_id: 1, door_series_id: 6 },
我如何让 arr 隐藏这些值和 promise 对象?
解决方案
您应该使用Promise.all()
解决数组中的所有承诺,像这样
const arr = serieses.map(async x => {
const seriesId = await getSeriesIDFromName(x);
return {part_id: partID, door_series_id: seriesId[0]["id"]};
});
const results = await Promise.all(arr)
results
将包含一个数组,其中包含从每个承诺中解析的值
推荐阅读
- magento - Magento 2 中 Airbrake 的替代品
- kubernetes - prometheus-blackbox-exporter 正在触发误报警报
- c - 传递 'strcmp' 的参数 1 使指针来自整数而没有强制转换 C
- python - 如果它不是主要或 sort_key,如何从 dynamo db 获取项目
- symfony - 缺少从 FormEvents PRE_SUBMIT 到 SUBMIT 侦听器的数据
- node.js - 每天计算价值。帮帮我,我是新手
- windows - 如何将当前连接的 wifi 网络的 SSID 分配给批处理脚本中的变量?
- python - 如何使用python将前导零添加到IP地址
- android - 如何在按下后退按钮时模拟主页按钮
- mat - 错误 NG8001:'mat-form-field' 不是已知元素