JavaScript重试承诺,直到解决
javascript retry promise until resolve
我有一些异步工作可能会失败并被拒绝。我想重试,直到它得到解决。已经找到了这种方法,但无法使其起作用。dontGiveUp(doFirst) 给我:未捕获的类型错误: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 + '!')
});
相关文章:
- JavaScript:在源404上重试
- 用分隔符分隔具有多个整数值的字符串的Javascript"重试错误的值
- Ajax在NodeJS中为一个耗时的请求请求多次重试
- 如何仅在RxJs中可观察到的源发出的特定错误上重试
- BreezeJS中央错误处理程序和自动重试
- 如何捕获请求中的错误,然后打开模态,然后在模态使用RxJS关闭时重试
- Angular2 http重试逻辑
- JS重试函数几次,看看它是否返回true
- Promise中的递归重试
- Bluebird Promise 重试 DocumentDB 请求
- 如果发生错误,如何重试 DriveApp.getFileById,直到成功
- Nodejs - 让客户端套接字在 5 秒超时后重试
- 重试时更改 ajax 数据
- RxJS 重试运算符与 ajax 调用
- JS/JQuery 重试 1 秒后 img 加载
- JavaScript重试承诺,直到解决
- 服务器发送的事件忽略重试
- 如果错误可重试,请重试异步函数
- 节点 JS:使用状态代码 503 重试函数
- 脸书应用程序请求:发生错误.请稍后重试