ES6的async/await 在循环中的使用注意事项

使用async/await使for/map等等循环方法中的异步操作变为串行:

当然首先当想到的是如下,使用Promise.all,但是结果并不尽人意,多个asyncWorker最终执行的结果依然是乱序的;

// 使用async await 处理异步操作
let results = await Promise.all(arr.map(async (item) => {
    // 等待异步操作完成,返回执行结果
    return await asyncWorker(item);
}));

  解决: 使用for /for...of等循环即可,因为map、forEach这些循环方法是直接调用回调函数,for/for...of 是通过迭代器的方式去遍历。;

猜你喜欢

转载自www.cnblogs.com/juneling/p/12582957.html