JSFiddle - React, Tailwind, and code Playground

JavaScript

var d = new $.Deferred();
var promise = d.promise();
var results = [];
for (var i = 0; i < 5; i++) {
    (function(i) {
        promise = promise.then(function() {
            return $.ajax('/echo/json/', {
                data: {
                    json: JSON.stringify({foo: i})
                }
            }).done(function() {
                results[i] = i;
            });
        });
    }(i));
}

promise.done(function() {
    console.log(results);
});

d.resolve();