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