首頁 > web前端 > js教程 > 如何在 JavaScript 中同時執行非同步操作並進行適當的錯誤處理?

如何在 JavaScript 中同時執行非同步操作並進行適當的錯誤處理?

Barbara Streisand
發布: 2024-12-10 00:22:11
原創
248 人瀏覽過

How Can I Run Asynchronous Operations Concurrently in JavaScript with Proper Error Handling?

並發等待操作執行

相關程式碼片段在執行非同步操作時遇到問題:

 ; <br>const value1 = wait getValue1Async();<br>const value2 = wait getValue2Async();<br>
登入後複製

此實作順序等待每個操作完成,然後再開始下一個操作。要啟用並發執行,需要一種修改方法。

Promise 分解並單獨等待

第一個解決方案嘗試透過取得每個操作的Promise,然後分別等待它們來解決此問題:

<br>const p1 = getValue1Async();<br>const p2 = getValue2Async();<br>const value1 = wait p1;<br>const value2 = wait p2;<br>
登入後複製

雖然此方法確實並行運行兩個操作,但它不處理如果🎜>

雖然此方法確實並行運行兩個操作,但它不處理如果🎜>

雖然此方法確實並行運行兩個操作,但它不處理如果🎜>

雖然此方法確實並行運行兩個操作,但它不會處理如果兩個承諾都拒絕,則正確拒絕。它還會等待第一個操作完成後才開始第二個操作,效率很低。

Promise.all 解


要解決這些問題,可以使用Promise.all 函數:

<p>const [value1, value2] = wait Promise .all([getValue1Async(), getValue2Async()]);</p>
登入後複製
  • Promise.all 接受一個 Promise 數組,並傳回一個在所有輸入 Promise 都已解決或拒絕時解析的 Promise。這個方法有幾個優點:
  • 並發性:操作將同時執行,無需等待第一個操作完成。
  • 拒絕處理: 任何拒絕都將得到妥善處理,由此產生的Promise 將以適當的方式拒絕
簡單性:

語法簡潔易讀。

TL;DR


綜上所述,要執行並發非同步操作,正確的拒絕處理、使用Promise.all:

const [value1, value2] = wait Promise.all([getValue1Async(), getValue2Async()]);
登入後複製

以上是如何在 JavaScript 中同時執行非同步操作並進行適當的錯誤處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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