![](/img/trans.png)
[英]Retry on Javascript.Promise.reject a limited number of times or until success
[英]javascript retry promise until resolve
我有一些异步工作可能会失败并被拒绝。 我想重试直到解决。 已经找到了这种方法,但无法使其起作用。 dontGiveUp(doFirst)给我:未捕获的TypeError:f.then不是函数(…)
有人可以指出错误/或更好的方法吗?
function dontGiveUp(f) {
return f.then(
undefined,
function (err) {
return dontGiveUp(f);
}
);
}
function doFirst(In){
return new Promise(function(resolve, reject) {
console.log("doFirst Done" + In);
if (Math.random() >= 0.5) {
console.log("resolve");
resolve(In);
}
else
{
console.log("reject");
reject(In);
}
})
}
一种可能性是继续调用promise解析器函数,直到它被解析为止:
function stubborn(promisedFunc) { var args = Array.from(arguments); return promisedFunc.apply(null, args.slice(1)).catch(function() { return stubborn.apply(null, args); }); }; rnd = function(a, b) { return new Promise(function(res, rej) { var x = Math.random(); document.write('trying ' + x + '<br>'); if(x > a && x < b) res(x) else rej(); }) }; stubborn(rnd, 0.3, 0.4).then(function(x) { document.write('finally ' + x + '!') });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.