如何處理多個Promise 並等待其完成
使用非同步程式碼時,通常需要處理多個Promise 並等待它們一切都需要在繼續之前完成。本文將引導您使用 Promise.all 來實現這一目標。
Promise.all 簡介
Promise.all 接受一組Promise 並返回一個可解析的Promise當所有輸入承諾都已解決時,或者如果其中任何一個拒絕,則拒絕。
重組doSomeAsyncStuff 返回Promise
要讓doSomeAsyncStuff 與Promise 搭配使用,請修改如下:
function doSomeAsyncStuff() { return new Promise((resolve) => { editor.on('instanceReady', function(evt) { doSomeStuff(); resolve(true); }); }); }
一旦 doSomeAsyncStuff 回傳一個承諾,你可以使用 Promise.all 等待它的所有實例完成。這是程式碼的改進版本:
此程式碼從每次呼叫 doSomeAsyncStuff 時建立一個承諾陣列。 Promise.all 接受這個陣列並等待所有的 Promise 解析。一旦所有 Promise 都解決,就會執行 then 回調,讓您可以執行依賴非同步任務結果的操作。const promises = []; for (let i = 0; i < 5; i++) { promises.push(doSomeAsyncStuff()); } Promise.all(promises) .then(() => { for (let i = 0; i < 5; i++) { doSomeStuffOnlyWhenTheAsyncStuffIsFinish(); } }) .catch((e) => { // Handle errors here });
以上是如何使用 Promise.all 管理和等待多個 Promise?的詳細內容。更多資訊請關注PHP中文網其他相關文章!