Retry promise
Retry promise
by christophes
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
JavaScript
function promiseWithRetry(fn, retries){
console.log("retry :"+retries);
return new Promise(function(resolve, reject) {
fn.then(function(response){
if(_.isEmpty(response) && retries > 0){
console.log("start new retry");
resolve(promiseWithRetry(fn, retries-1));
}else{
console.log("resolve");
resolve(response);
}
});
});
}
var parameters = {
action: "firstLoad"
};
promiseWithRetry(serverGet(parameters), 5).then(function(response){
console.log(response)
});
function serverGet(parameters) {
return new Promise((resolve, reject) => {
if(Math.floor(Math.random() * Math.floor(2))){
resolve({});
}else{
resolve({
message : "The response is OK",
status: "OK"
});
}
});
}