管理Promise 鏈中的中間結果
問題:
問題:function getExample() { return promiseA(…).then(function(resultA) { // Processing return promiseB(…); }).then(function(resultB) { // How can we access resultA here? }); }
問題:
它在最終回調中訪問中間承諾結果可能具有挑戰性。在下面的範例中,我們如何在promiseB的回調中存取promiseA的結果?function getExample() { var a = promiseA(…); var b = a.then(function(resultA) { // Processing return promiseB(…); }); return Promise.all([a, b]).then(function([resultA, resultB]) { // Processing using both resultA and resultB return …; }); }
解決方案:打破鏈條
訪問中間結果對於承諾鏈,最好將其分解為單獨的組件。這允許您將多個回調附加到同一個承諾,在需要時存取解析的值。這是程式碼的改進版本:… return Promise.all([a, b]).then(.spread(function(resultA, resultB) { … });
… return Promise.join(a, b, function(resultA, resultB) { … });
以上是如何存取 JavaScript Promise 鏈中的中間 Promise 結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!