异步javascript错误处理的最佳实践是什么?

时间:2015-11-25 16:03:44

标签: javascript node.js design-patterns express

我感兴趣的是处理异步JavaScript函数错误的最佳实践。我在下面给出了两个例子,一个用于处理INSERT INTO [report_agent_Events] ( [Agent_Name] , [time_started] , [time_ended] , [duration] , [clientStatus] , [agentStatus] , [Call_ID] , [Reference_ID] ) SELECT [Agent_Name] , [time_started] , GETDATE() , DATEDIFF(SECOND, [time_started], GETDATE()) , [clientStatus] , [agentStatus] , raw_call_ucid , [Reference_ID] FROM DELETED d join ( select top 1 ID as CallID from report_ExtensionCalls ec where ec.UCID = d.raw_call_ucid order by [time_finished] DESC ) e on e.CallID = d.raw_call_ucid 中的错误,另一个用于处理if statement中的成功。以前我总是处理if statement中的错误,但想知道这是否是最好的方法。请告诉我您认为哪种方法最好?为什么?

if statement

function(err, res){
    if(err){
       // handle error
       return;
    }
    // code to handle response
}

提前致谢

2 个答案:

答案 0 :(得分:0)

根据应用程序的数据流和部分(即API和/或路径),您可以选择将错误传递给下一个中间件。您可以返回来自其他中间件的数据,并返回在请求期间可能已经冒出的错误。这取决于您是否需要程序停止执行,或者它是否需要记录并继续执行的小错误。正如评论中所述,两者都被平等接受。

答案 1 :(得分:-1)

最佳做法是使用ES6 babelasync / await和ES7 Promises,而不是回调。

否则第一个选项是更常见的IMO。