JSFiddle - React, Tailwind, and code Playground
by jfriend00
JavaScript
function main() {
var items = [0, 1];
return items.reduce(function(p, index) {
return p.then(function() {
return test(index);
});
}, $.Deferred().resolve());
}
function test(x){
var def = $.Deferred();
test1(x).done(function(){
setTimeout(function(){ log('processed test item', x); def.resolve();}, 1000);
});
return def.promise();
}
function test1(items){
var _d = $.Deferred();
setTimeout(function(){
log('processed test1 item', items);
_d.resolve();
});
return _d.promise();
}
main().done(function(){ log('completed')});
// utility function to display output
function log(args) {
var str = "";
for (var i = 0; i < arguments.length; i++) {
if (typeof arguments[i] === "object") {
str += JSON.stringify(arguments[i]);
} else {
str += arguments[i];
}
}
var div = document.createElement("div");
div.innerHTML = str;
var target = log.id ? document.getElementById(log.id) : document.body;
target.appendChild(div);
}