JSFiddle - React, Tailwind, and code Playground

JavaScript

console.info('Creating promises: start');
var p = [];
for(var i=0; i<5; i++) {
    (function(i){
        a = $.when( x(i) ).done(function(){
            console.log('Promise ' + i + ': done');
        });
        p.push(a);
    })(i);
}
console.info('Creating promises: done');
console.log('Running promises: start');

$.when.apply($,p).done(function(){
    console.log('Running promises: done');
});

function x(i) {
    console.log('Promise ' + i + ': start');
    return $.ajax({
        'url' : '/'         
    })
    .done( function() {
    });
}