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); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment