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);
}