JSFiddle - React, Tailwind, and code Playground
by jimyu
JavaScript
var t = 500;
var max = 5;
var retries=0;
function rejectDelay(reason) {
return new Promise(function(resolve, reject) {
setTimeout(reject.bind(null, reason), t);
});
}
var p = Promise.reject();
function test() {
do {
p = p.catch(attempt).catch(rejectDelay);
retries +=1;
console.log(retries);
}
while(retries<max);
/* for (var i = 0; i < max; i++) {
} */
//p = p.then(processResult).catch(errorHandler);
return p;
}
function attempt() {
var rand = Math.random();
if (rand < 0.8) {
throw rand;
} else {
return rand;
}
}
test().then(processResult).catch(errorHandler);
function processResult(res) {
console.log("found: ",res);
}
function errorHandler(err) {
console.log("not found: ",err);
}