An introduction to Javascript Promises
a cleaner way to do error handling
var user = login('vee');
var tweets = getTweetsFor(user);
display(tweets);
login('vee', function(user) {
getTweetsFor(user, function(tweets) {
display(tweets);
}
}
try {
login('vee', function (user) {
try {
TwitterAPI.getTweetsFor(user, function() {
try {
display(tweets);
} catch (e) {
display("fail");
}
} );
} catch(e) {
display("fail");
}
});
} catch (e) {
display("fail");
}
login('vee').
then(TwitterAPI.getTweetsFor ).
then(display,
function(error) {
display("fail");
});
Try/catch on async code is like playing catch with a robot that randomly throws a baseball directly to your forehead.
— Luke Arduini (@luk) February 19, 2013
try {
(function() {
throw "river"
}());
} catch (e) {
console.log('cry me a ....' + e);
}
try {
setTimeout(function() {
throw "river";
}, 1000);
} catch (e) {
console.log('cry me a ....' + e); // or not
}
login('vee').
then(function (user) {
TwitterAPI.getTweetsFor(user);
}).
then(function (tweets) {
display(tweets);
}, function(error) {
display("fail");
});