基于 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