JSFiddle - React, Tailwind, and code Playground

HTML

<div id="results"></div>

JavaScript

function log(str){
    $("#results").append("<p>"+str+"</p>");
}

function doTask(v){
    var dfd = $.Deferred();
    setTimeout(function(){
        log(v);
        dfd.resolve();
    }, 1000);
    return dfd.promise();
}

var tasks = ["one","two","three","four"];

var dfd = $.Deferred().resolve();
tasks.forEach(function(task){
    dfd = dfd.then(function(){
        return doTask(task);
    });
});

dfd.done(function(){
    log("all done");
});