javascript - 重试失败的异步/ promise 功能?

标签 javascript node.js asynchronous promise

我有这个异步 block :

test().then(function(result){
    // Success: Do something.
    doSomething();
}).catch(function(error){
    // Error: Handle the error, retry!
    // How to re-run this whole block?
});

我可以跟踪成功失败 结果。但是,如果我们失败了,是否可以重试整个 test().then().catch() 链?并继续重试直到条件解决?

最佳答案

如果可以切换到 async/await 语法,则可以使用 while 循环:

let keepTrying;

do {
    try {
        await test();
        keepTrying = false;
    } catch {
        keepTrying = true;
    }
} while (keepTrying)

doSomething();

然后您可以将重试逻辑抽象到它自己的函数中以供重用。

关于javascript - 重试失败的异步/ promise 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982040/

相关文章:

node.js - 如何控制 Node.js 应用程序中模块的执行顺序

javascript - 为什么 typeof let === 'undefined' ?

c# - 如何捕获从 HttpWebRequest.GetResponseAsync 抛出的异常?

javascript - 将成功添加到双 jquery/ajax post

javascript - console.log 在评估之前/没有评估之前的表达式

node.js - 我是编程新手,我正在学习 node.js,但是在执行 parsedUrl 时,我得到了 [object :null] with the output, 如何修复它

ios - HEADER 请求 allHeaderFields 不工作

Spring Kafka 异步发送调用 block

javascript - 如何使用 JavaScript 按季度添加月份

javascript - 根据另一个添加一个处理程序?