我有一个嵌套的map
循环,异步等待我执行2条promise.all
语句。
数据被格式化为1个大数组,其中可能包含多个对象数组。
内部循环将遍历数组中的对象,外部循环将遍历主数组中的数组。
我正在使用map
,因为很容易保持此功能以 parallel 性能而不是 sequential 。我不确定是否值得保持 parallel 或是否有更好的方法(也许是 for-each 循环)。
这是我当前正在使用的代码(简体/摘要)。
const outerPromise = information.map(async order => {
const innerPromise = order.moreInformation.map(async singleOrder => {
if (something) {
const response = await axios({ ... });
return response.specificDataField;
}
});
const orders = await Promise.all(innerPromise);
return orders.filter((obj) => obj);
});
const orders = await Promise.all(outerPromise);
return orders;
很抱歉,如果格式略有偏离,则缩进可能已关闭,我无法正确格式化。 任何帮助将不胜感激。谢谢! 附言这是用JS / NodeJ(ExpressJs)编写的
编辑:
我不认为问题出在我之后进行过滤,因为对象可能会变成null。我需要在获取innerPromise之后进行过滤(以查看哪些为空?)。
话虽这么说,实际上是2条map
语句使我觉得有更好的方法。