我有这个异步 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/