JSFiddle - React, Tailwind, and code Playground
by hughes
JavaScript
var retry = function (requestFn, maxTries, fuzzPeriod) {
var tryCount = 0;
var _retry = function () {
tryCount++;
if (tryCount > maxTries) {
// abort, max tries exceeded
return;
}
var fuzz = Math.random() * fuzzPeriod; // ms
setTimeout(function () {
requestFn().fail(_retry);
}, fuzz);
}
return _retry;
}
var success = function () {
console.log('how did this succeed?');
}
function makeRequest() {
var promise = $.ajax('http://not-real.example.com');
promise.done(success);
return promise
}
makeRequest().fail(retry(makeRequest, 10, 1000));