jQuery Deferred
Promises pattern
by MoonScript
JavaScript
function wait(sec) {
//var dfd = $.Deferred();
return $.Deferred(function(dfd){
setTimeout(function(){
console.log('Function complete ['+sec+' seconds]');
dfd.resolve();
}, sec*1000);
}).promise();
//return dfd.promise();
}
console.log('Start deferreds...');
$.when(wait(2), wait(3)).then(function(){
alert('Both async functions have executed,\nbut only 3 seconds have passed.');
});