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