首頁 >web前端 >js教程 >如何管理 JavaScript Promise 鏈中的相關結果?

如何管理 JavaScript Promise 鏈中的相關結果?

Patricia Arquette
Patricia Arquette原創
2024-12-05 18:01:11865瀏覽

How to Manage Dependent Results in JavaScript Promise Chains?

如何處理Promise 鏈中的相關結果

您的問題詢問如何在一系列基於Promise 的HTTP 請求中利用先前的結果。為了解決這個問題,我們首先考慮跨依賴承諾共享資料的各種策略。策略的選擇取決於您需要訪問所有先前的結果還是僅訪問最近的結果。

依序提供結果

在此模型中,每個結果的結果請求會作為參數傳遞給下一個。然而,訪問以前的結果變得具有挑戰性。

將結果分配給更高的範圍

或者,您可以將結果儲存在更高範圍的變數中。這允許訪問所有先前的結果。

在物件中累積結果

此方法涉及建立一個物件來累積結果。每個請求都會將其結果添加到物件中,從而使所有先前的資料可用。

巢狀 Promise 鏈

巢狀 Promise 保留對先前結果的存取。每個連續層都提供了一個範圍,可以存取所有早期結果。

使用 Promise.all() 打破鏈條

如果某些請求可以獨立運行,您可以使用Promise.all() 等待它們完成。這允許您非​​同步獲取結果。

在 ES7 中使用 Async/Await

在 ES7 中,async/await 可以簡化非同步操作的排序。結果在同一範圍內可用,無需多個 .then() 處理程序。

應用於您的範例

在您的特定情況下,API 金鑰在多個HTTP 請求之間傳遞,你可以:

var r1, r2, r3;
callhttp("172.16.28.200", payload).then(function(result1) {
     r1 = result1.data; // Extract the API key
     return callhttp("172.16.28.200", payload);
}).then(function(result2) {
     r2 = result2.data;
     // r1 contains the API key from the previous request
     return callhttp("172.16.28.200", payload);
}).then(function(result3) {
     r3 = result3.data;
     // r1 and r2 contain the API keys from the previous requests
});

以上是如何管理 JavaScript Promise 鏈中的相關結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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