'forEach'迭代後非同步回呼執行
查詢:
查詢:如何回調在「 forEach」迴圈的所有非同步回調完成後執行?
解:Array.forEach 本身並不支援此功能。但是,有幾種替代方法可以實現此目標:
1。計數器:使用計數器追蹤已處理項目的數量。在每個非同步操作的回調中遞增計數器,並在計數器達到項目總數時呼叫最終回調。
2.承諾(ES6):
a。順序執行:依序鍊 Promise 確保非同步任務的同步執行,確保每個項目都按照它們在陣列中出現的順序進行處理。
b.並行執行:使用 Promise.all() 方法並行執行所有非同步任務,不保證執行順序。
3.異步庫:
Async.js 等熱門庫提供了表達所需行為的機制,例如Async#series() 和Async# parallel()。
原始範例實作(同步):posts.foreach(function(v, i) { res.write(v + ". index " + i); }); res.end();問題中的原始程式碼範例了同步場景,可以使用以下實作:
以上是如何在「forEach」迴圈內的所有非同步回調完成後執行回呼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!