首頁 >web前端 >js教程 >如何存取 JavaScript .then() 鏈中之前的 Promise 結果?

如何存取 JavaScript .then() 鏈中之前的 Promise 結果?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-27 14:59:10918瀏覽

How Can I Access Previous Promise Results in a JavaScript .then() Chain?

造訪.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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:測試開發下一篇:測試開發