Skip to content

Instantly share code, notes, and snippets.

@Takazudo
Created June 7, 2011 07:19
Show Gist options
  • Save Takazudo/1011816 to your computer and use it in GitHub Desktop.
Save Takazudo/1011816 to your computer and use it in GitHub Desktop.
/* jQuery deferred chain example
demo on jsfiddle: http://jsfiddle.net/Takazudo/ekbc4/ */
var $ul = $('#dump');
function dump(msg){
$ul.append('<li>' + msg + '</li>');
}
/* deferred functions */
function do1(){
var defer = $.Deferred();
setTimeout(function(){
dump('do1 done');
defer.resolve();
},500);
return defer.promise();
}
function do2(){
var defer = $.Deferred();
setTimeout(function(){
dump('do2 done');
defer.resolve();
},400);
return defer.promise();
}
function do3(){
var defer = $.Deferred();
setTimeout(function(){
dump('do3 done');
defer.resolve();
},300);
return defer.promise();
}
function do4(){
var defer = $.Deferred();
setTimeout(function(){
dump('do4 done');
defer.resolve();
},700);
return defer.promise();
}
$('button').click(function(){
console.log('go!');
var defer = $.Deferred();
defer.pipe(function(){
return do1();
}).pipe(function(){
return do2();
}).pipe(function(){
return do3();
}).done(function(){
do4();
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment