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