並行還是順序:Node.js 中 Promise.All() 的本質
出現一個關於 Promise 執行過程的問題。 Node.js 中的 all() 。它是順序處理還是並發處理 Promise?
問題 1:順序處理還是平行處理?
文件留下了歧義的空間,所以讓我們澄清一下: Promise.all(iterable)不會像承諾鏈一樣順序執行所有承諾(例如,p1.then(p2).then (p3)...),也不會並行運行它們。相反,它等待多個 Promise 的解決。
Q2:實作順序執行
如果 Promise.all() 缺乏順序功能,有替代方案嗎?
對於現有的一組 Promise,沒有本地方法來強制順序執行。但是,如果您有可迭代的非同步函數,則可以使用 Array::reduce:
iterable.reduce((p, fn) => p.then(fn), Promise.resolve())
以上是## Promise.all() 是順序執行還是並行執行 Promise?的詳細內容。更多資訊請關注PHP中文網其他相關文章!