在 Promise 鏈中,每個回呼都會接收前一個 Promise 的結果。然而,訪問鏈中的中間結果可能具有挑戰性。
要存取中間結果,請考慮將鏈分成更小的段。不要將回調附加到單一承諾,而是將多個回調附加到同一個承諾。這可以在需要時提供對結果值的存取。
Promise 庫提供組合器,例如Promise.all(),它將多個Promise 組合成一個單一承諾,以包含每個結果的陣列來解析
假設您有Promise A 和 B,而您希望在 Promise B 的回呼中存取 Promise A 的結果:
function getExample() { var a = promiseA(…); var b = a.then(function(resultA) { // some processing return promiseB(…); }); return Promise.all([a, b]).then(function([resultA, resultB]) { // more processing return // something using both resultA and resultB }); }
在 ES6 中,您可以使用陣列解構來存取最終回調中的結果。在 ES5 中,您可以使用 .spread() 輔助方法或 Promise.join() 來獲得更清晰的語法。
以上是如何存取 JavaScript Promise 鏈中的中間 Promise 結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!