jQuery.Deferred test6
by Akram kamal
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);
});