4 ms·
You can wrap your callback functions and handle errors all in one spot. Example: var slice = Array.prototype.slice; function errHandler(callback) {
by MatthewPhillips 14y ago
You can wrap your callback functions and handle errors all in one spot. Example:
var slice = Array.prototype.slice;
function errHandler(callback) {
return function(err) {
if(err) {
// Error handling code here.
} else {
callback(slice.call(arguments, 1));
}
};
}
- embwbam 14y agoI've tried stuff like this before, but it clutters your code pretty bad anyway, doesn't it? You have to do something like this: function myAsyncThing(cb) { var handleErrors = errHandler(cb) doSomethingElse(handleErrors(function(data) { // repeat. use handleErrors at each callback. })) } Am I missing something? Can you get it cleaner than that?
- MatthewPhillips 14y agoThat depends, if you're using doSomethingElse a lot I'd just go ahead and wrap that as well, if you're using it once it's no big deal. doSomethingElse(errHandler(function(real, results) { // foo })); If you're using Node you should be writing small(ish) modules anyways, so it doesn't lead to much code blote and its advantageous to consolidate your error handling in one or 2 spots.