调用错误优先的函数Node JS

时间:2017-08-17 21:34:15

标签: node.js function error-handling function-calls

是Node的新手,但是,我遇到了一个问题,试图将数据传递给一个有两个参数err / argTime的函数。例如:函数(错误,argTime)。

这对我有用:

queryTrigger(moment()); //the call
//more code...

function queryTrigger(argTime) { 
            console.log(argTime);
         };

这不起作用:

queryTrigger(moment()); //the call
//more code...

function queryTrigger(err, argTime) { 
        if(err) {
            throw err;
        } else {
        console.log(argTime);
        };
};

非常感谢任何见解!

1 个答案:

答案 0 :(得分:1)

您需要传递一个值作为错误,但如果没有,您可以使用nullundefined作为值(表示没有错误)。

// No error:
queryTrigger(null, moment());

// Explicit error:
queryTrigger((new Error('Error!')), moment());

// Variable error from function response:
queryTrigger(isErrored(), moment());

在回答你的后续评论时,通常只需要在调用异步函数时需要这种模式,其中错误是在主事件循环之外引发的 - 如果你没有这样做,你可以只使用{{1}处理错误。

我不同意this answer关于最佳做法的陈述; try/catch参数基本上总是第一个参数,后面几乎是stdlib中的每个异步函数以及GitHub / npm上的大多数(好)软件包。