Skip to content

Instantly share code, notes, and snippets.

@roadmanfong
Last active August 29, 2015 14:08
Show Gist options
  • Save roadmanfong/9ebf2fa756ed67a4c507 to your computer and use it in GitHub Desktop.
Save roadmanfong/9ebf2fa756ed67a4c507 to your computer and use it in GitHub Desktop.
deferred promise .then()
function fooA(){
console.log('exec fooA');
var dfd = new $.Deferred();
dfd.done(function() {
console.log('fooA Success');
})
.fail(function() {
console.log('fooA fail');
});
setTimeout(dfd.reject, 0);
return dfd.promise();
}
function fooB(){
console.log('exec fooB');
var dfd = new $.Deferred();
dfd.done(function() {
console.log('fooB Success');
})
.fail(function() {
console.log('fooB fail');
});
//reject here
setTimeout(dfd.resolve, 0);
return dfd.promise();
}
function fooC(){
console.log('exec fooC');
var dfd = new $.Deferred();
dfd.done(function() {
console.log('fooC Success');
})
.fail(function() {
console.log('fooC fail');
});
setTimeout(dfd.resolve, 0);
return dfd.promise();
}
fooA()
.then(function() {
return fooB();
})
.then(function() {
return fooC();
})
.done(function() {
console.log('All success');
})
.fail(function () {
console.log('Some one fail');
})
// outcome =>
// exec fooA
// fooA fail
// Some one fail
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment