JSFiddle - React, Tailwind, and code Playground
by stuttufu
HTML
<script src="http://cdnjs.cloudflare.com/ajax/libs/q.js/0.9.6/q.js"></script>
<div id="results"></div>
JavaScript
function doSomethingAsync(item) {
return Q.promise(function(resolve) {
$("#results").append("<div>" + item + "</div>");
setTimeout(resolve.bind(null, item), 3000);
});
}
function doAsyncSeries(arr) {
return arr.reduce(function (promise, item) {
return promise.then(function(result) {
return doSomethingAsync(result+item);
});
}, Q(''));
}
var items = ['x', 'y', 'z'];
doAsyncSeries(items).then(function() {
$("#results").append("<div>complete</div>");
});