Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Q promises pyramid of doom
var Q = require('q');
function delaydo(x) {
var deferred = Q.defer();
setTimeout(function() {
if (x === 2) {
console.log("reject: "+x);
deferred.reject(x);
}
else {
console.log("resolve: "+x);
deferred.resolve(x);
}
}, 1000);
return deferred.promise;
}
delaydo(1)
.then(function() {
delaydo(2)
.then(function() {
delaydo(3)
.then(function() {
delaydo(4);
})
.catch(function(errC) {
console.log("Error handler C: "+errC);
});
})
.catch(function(errB) {
console.log("Error handler B: "+errB);
});
})
.catch(function(errA) {
console.log("Error handler A: "+errA);
});
resolve: 1
reject: 2
Error handler B: 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment