JSFiddle - React, Tailwind, and code Playground

by toddanglin

JavaScript

var promises = queuePromise(getData(0, 3)); //Add long delay to first to prove parallel processing

for(var i = 1; i < 3; i++){
    promises.push.apply(promises, queuePromise(getData(i, 1)));
}

$.when.apply(null, promises)
     .then(function() {
         var idx,
             length;

         //Use this if you want to do something with the promise return values
         //for (idx = 0, length = arguments.length; idx < length; idx++){
         //    alert(arguments[idx]);
         //}

         //All async processing done!
         alert("Done!");
     });

function queuePromise(){
    var promises = [],
        promise = arguments[0];
  
    promises.push(promise);
   
    return promises; 
}

function getData(idx, delay){
 
    return $.ajax({url:'/echo/json/',data:{delay:delay}})
        .success(function(){ 
            alert("Done "+ idx);
        });

}