jQuery.Deferred test6

by Chance Nursey-Bush

HTML

<ul></ul>

CSS

ul{
    list-style-type:disc;
    margin:0 0 0 2em;
}
li{
    margin:0 0 .5em;
}

JavaScript

/* utils */
var $ul = $('ul');
function msg(text){
    $ul.append('<li>' + text + '</li>');
}

/* functions */
function asyncThing1(){
    var dfd = $.Deferred();
    setTimeout(function(){
        msg('asyncThing1 seems to be done...');
        dfd.resolve('banana');
    },1000);
    return dfd.promise();
}

function asyncThing2(){
    var dfd = $.Deferred();
    setTimeout(function(){
        msg('asyncThing2 seems to be done...');
        dfd.resolve('apple');
    },500);
    return dfd.promise();
}

function asyncThing3(){
    var dfd = $.Deferred();
    setTimeout(function(){
        msg('asyncThing3 seems to be done...');
        dfd.resolve('orange');
    },1500);
    return dfd.promise();
}

/* do it */
$.when( asyncThing1(), asyncThing2(), asyncThing3() ).done(function(res1, res2, res3){
    msg('all done!');
    msg(res1 + ', ' + res2 + ', ' + res3);
});