javascript - 使用键异步循环数组
问题描述
我有一系列客户,我想遍历他们并为每个客户分配一个属性。通过 details 函数返回具有添加属性的客户对象
for (let i = 0; i < customers.length; i++)
{
customers[i] = await details(customers[i]);
}
这就是我目前的做法,但它是同步的。我希望列表中的所有对象一次异步完成。我正在尝试使用异步库,但它只为我提供了循环内可用的客户对象,因此客户数组永远不会改变。
async.forEachOf(customers, (customer, finished) async =>
{
customer = await details(customer);
finished();
});
我该怎么做?谢谢
解决方案
您不需要第三方库来完成此操作。只需使用Promise.all()
和Array.prototype.map()
。
const customerDetails = await Promise.all(
customers.map(customer => details(customer))
);
推荐阅读
- angular - Angular 11 中的嵌入式画面仪表板不会在页面刷新时呈现
- python - 强制 Python 从命令行更新命令历史文件?
- javascript - 为什么我们在 ReactJs 中使用 Context API?如果我们使用简单的道具会发生什么?
- css - 如何根据屏幕大小更改 Bootstrap 列的大小?
- python - 如何获取频道中的第一条消息
- python - PyWavelets CWT 函数的输出不正确
- snapshot - 为什么 RBD snap id 从 4 开始?
- angular - 如何在 TypeScript 中的类中使用接口进行功能解构
- html - css:将 html 高度设置为容器的 100%
- html - 使用 CSS 网格创建导航栏