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.'); 
});