基於 Promise 的操作的重試模式
Promise 提供了一種處理 JavaScript 中非同步操作的便捷方法。然而,有時需要多次重試操作或直到滿足特定條件為止。
1.重試直到 Promise 解決
要連續重試操作直到它解決,請在重試之間使用延遲和最大重試次數。這可以使用 for 迴圈和 .catch() 連結來實現:
for (var i = 0; i 2.重試直到條件滿足
要重試操作直到結果滿足條件,請使用.then() 鏈檢查條件並使用.catch()鏈處理失敗:
for (var i = 0; i 3.記憶體高效的動態重試模式
對於具有無限重試和指定延遲的動態重試機制,請使用.catch() 鏈方法:
var p = Promise.reject();
while (true) {
p = p.catch(attempt).catch(rejectDelay);
// Break out of the loop if the condition is met.
if (conditionMet) break;
}
注意:
- 用於重試的 .catch() 鏈方法在最大嘗試次數和記憶體消耗方面存在限制。
- 對於複雜的重試場景,建議使用遞歸解決方案或專門建構的重試函式庫。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3