JSFiddle - React, Tailwind, and code Playground

JavaScript

$.ajax = function () {
    return $.Deferred(function(def){
        setTimeout(function(){
            def.resolve();
        },500);
    }).promise();
};


var def = $.Deferred(function(def){
    def.resolve();
}).promise(); // used to start .then chain

for (var i = 0; i < 10; i++) {
    def = def.then(function () {
        return $.ajax({});
    });
}
// start chain
def.done(function(){
    // All requests from chain are done
    console.log('all done');
});