問題:
考慮以下程式碼,其中列表建立了的延遲任務:
var deferreds = getSomeDeferredStuff(); $.when(deferreds).done(function() { console.log("All done!") });
但是, 「都完成了!」在所有延遲任務完成之前記錄。如何將一組 deferred 傳遞給 $.when() 並確保它等待所有任務完成?
答案:
傳遞一組值到需要單獨參數的函數,請使用Function.prototype.apply:
$.when.apply($, deferreds).then(function() { console.log("All done!") });
Here's a程式碼分解:
或者,在ES6 和新版本中,您可以使用擴充運算子:
$.when(...deferreds).then(function() { console.log("All done!") });
在任何一種情況下,處理程序都會收到一組結果,每個延遲一個。處理這個陣列以獲得你需要的值。
以上是如何確保 $.when() 等待數組中的所有延遲任務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!