造訪.then() 鏈中的先前Promise 結果
為了使用Promise 建構程式碼,「扁平Promise 鏈」可以建立多個.then() 回調。然而,存取此鏈中的中間承諾結果可能具有挑戰性,因為它們通常不在後續回呼的範圍內。
打破鏈
要存取中間值,請考慮將鏈條分解成更小的碎片。不要附加單一回調並嘗試重複使用其參數,而是將多個回調附加到需要每個結果值的同一個 Promise。透過合併庫提供的 Promise 組合器,可以建構結果值。
這種方法簡化了控制流,增強了組合,並促進了模組化。
修改後的程式碼範例:
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 }); }
ES5替代方案:
… return a.then(function(resultA) { return b.then(function(resultB) { // more processing return // something using both resultA and resultB }); });
藍鳥解決方案:
… return Promise.join(a, b, function(resultA, resultB) { … });藍鳥解決方案:
以上是如何存取 JavaScript .then() 鏈中之前的 Promise 結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!