使用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 是通过迭代器的方式去遍历。;