JSFiddle - React, Tailwind, and code Playground

by nnsese

JavaScript

var myPromise = function(params) {
   return new Promise(function(resolve, reject) {

      console.time("date: " + params.date);
      setTimeout(function() {
         console.timeEnd("date: " + params.date);
         if (params.fail) {
            reject(params.date)
         } else {
            resolve(params.date)
         }
      }, 1000);
   })
};


var paramList = [{
   date: "2017-07-01",
   fail: false
}, {
   date: "2017-07-02",
   fail: false
}, {
   date: "2017-07-03",
   fail: false
}, {
   date: "2017-07-04",
   fail: true
}, {
   date: "2017-07-05",
   fail: false
}, {
   date: "2017-07-06",
   fail: false
}];


wrapperFunction = function(acc, params) {
   return acc.then(function() {
      return myPromise(params)
   })
}


paramList.reduce(wrapperFunction, Promise.resolve())
   .then(function(result) {
      console.log("Last: %s", result);
   })
   .catch(function(result) {
      console.log("Fail: %s", result);
   })
   .then(function() {
      console.log("Done.");
   });