嵌套地图循环异步/等待与嵌套循环异步/等待

时间:2018-11-06 15:54:04

标签: javascript node.js performance express asynchronous

我有一个嵌套的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语句使我觉得有更好的方法。

0 个答案:

没有答案