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

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

Mary-Kate Olsen
發布: 2024-11-24 03:35:10
原創
486 人瀏覽過

How Can I Execute Async Functions in Parallel in JavaScript?

並行執行非同步函數

在ES7/ES2016 中,await 表達式的順序執行是預設行為,類似於使用.然後( )。然而,要並行執行非同步調用,還有其他方法。

使用 Promise.all() 並行執行

一個優雅的解決方案是使用 Promise.all( )。此方法接受一組承諾並傳回一個解析為結果陣列的承諾:

await Promise.all([someCall(), anotherCall()]);
登入後複製

要儲存單一結果,您可以將傳回值解構為變數:

let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);
登入後複製

警告:使用catch() 處理拒絕

請注意Promise.all()實現“快速失敗”語義。這意味著如果任何一個輸入 Promise 被拒絕,則整個操作將被拒絕,並出現失敗 Promise 的錯誤。若要擷取並處理潛在的錯誤,請使用 .catch() 方法。

例如:

Promise.all([happy('happy', 100), sad('sad', 50)])
  .then(console.log).catch(console.log); // Logs 'sad'
登入後複製

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板