javascript - 嵌套 Map 循环 async/await 与嵌套 for 循环 async/await
问题描述
我有一个map
带有异步等待的嵌套循环,我在其中执行 2 条promise.all
语句。数据被格式化为 1 个大数组,其中可能包含多个对象数组。内循环将映射数组中的对象,外循环将映射主数组中的数组。
我正在使用map
它,因为它很容易通过并行性能而不是顺序来保持这种功能。我不确定是否值得保持并行,或者是否有更好的方法来做到这一点(也许是一个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;
抱歉,如果格式稍有偏差,缩进可能会关闭,我无法正确格式化。任何帮助将不胜感激。谢谢!PS 这是用 JS/NodeJs (ExpressJs) 编写的
编辑:我不认为问题出在我之后过滤,因为它是可能会出现空值的对象;取回 innerPromise 后,我需要进行过滤(查看哪些为空?)。话虽如此,确实是这两个map
陈述让我觉得好像有更好的方法来做到这一点。
解决方案
推荐阅读
- sql - 在列中找到最大值,但仅当其他两列匹配时
- swift - 元素作为AnyObject vs element vs AnyObject?
- javascript - 根据父对象是否已经在数组中过滤对象数组
- python - 制作一个 python Tkinter 登录屏幕,用于验证来自 csv 文件的帐户详细信息
- php - 将我的 xampp 安装从 5.3 更新到 5.5 或 5.6 - on power pc mac 10.5
- java - 每次都从http请求中获取新字符串或获取参数?
- python - CTRL+D 没有一致地发送 EOF
- c++ - 如何在不同的进程中写入具有偏移量的内存地址
- c - ptrace 能否导致被跟踪进程在不访问可执行系统调用指令的情况下执行系统调用?
- javascript - 如何通过输入实时突出显示文本?