【发布时间】:2017-11-22 03:57:09
【问题描述】:
为了捕捉错误,我在每个看起来很糟糕的函数中都编写了 if-else 块。请提出一种更好的方法来处理异步节点中的错误
async.waterfall([
function(callback){
fnOne.GetOne(req, res,function(err,result) {
if(err){
console.error("Controller : fnOne",err);
callback(err,null);
}
else{
var fnOne = result;
callback(null, fnOne);
}
})
},
function(fnOne, callback){
fnTwo.two(fnOne,function(err,result) {
if(err) {
console.error(err);
callback(err,null);
}
else{
callback(null, context);
}
})
}
], function (err, result) {
if(err){
console.error("Controller waterfall Error" , err);
res.send("Error in serving request.");
}
});
【问题讨论】:
-
如果你不想一直写
if(err) { callback(err) },你可以考虑使用promise。 Promise 允许错误的自动传播。您可以为多个函数添加一个错误处理程序。
标签: javascript node.js asynchronous