首頁 >web前端 >js教程 >如何在 JavaScript 中並發執行非同步函數?

如何在 JavaScript 中並發執行非同步函數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-20 04:33:01845瀏覽

How Can I Execute Async Functions Concurrently in JavaScript?

並發執行非同步函數

在ES7/ES2016中,使用多個await語句不會並行執行函數。相反,它們是按順序執行的,就像用 Promise 連結 .then() 一樣。

範例:

await someCall();
await anotherCall();

在此範例中,anotherCall() 只會是someCall() 完成後呼叫。

並行化非同步函數呼叫

要並行執行非同步函數,有以下幾種選擇:

使用Promise.all()

Node.js 中最簡單的方法是使用Promise.all()包裝要同時執行的非同步函數:

await Promise.all([someCall(), anotherCall()]);

這將創建一個代表所有輸入承諾完成的承諾。

儲存結果

如果需要儲存結果,可以在await語句中使用解構:

let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);

錯誤處理注意事項

Promise.all 很快就會失敗。這意味著如果任何輸入承諾被拒絕,整個操作將被拒絕並出現該錯誤。

以上是如何在 JavaScript 中並發執行非同步函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn