JSFiddle - React, Tailwind, and code Playground
JavaScript
function doTask(taskNum){
var dfd = $.Deferred(),
time = Math.floor(Math.random()*3000);
console.log("running task " + taskNum);
setTimeout(function(){
console.log(taskNum + " completed");
dfd.resolve(taskNum);
},time)
return dfd.promise();
}
var tasks = [1,2,3].map(function(task) { return doTask(task); });
$.when.apply($, tasks).then(function() { console.log(arguments); });