JSFiddle - React, Tailwind, and code Playground

by tyrw

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/q.js/0.9.2/q.min.js"></script>

JavaScript

// async_series.js
// example of using reduce and promises and closure to create async results in series

var results = [1, 2, 3, 4, 5];

function workCollection(arr) {
  var deferreds = []
  arr.reduce(function(previousValue, currentValue, currentIndex, array){
    var deferred = Q.defer()
    setTimeout(function(){
      console.log('item', currentValue, 'result', previousValue, 'index', currentIndex)
      deferred.resolve()
    }, 1000 * currentIndex);
    deferreds.push(deferred.promise)
  })
  return Q.all(deferreds)
}

console.log('start')
workCollection(results)
.then(function(){
  console.log('done')
})
.catch(function(err){
  console.log(err)
});