是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);
};
};
非常感谢任何见解!
答案 0 :(得分:1)
您需要传递一个值作为错误,但如果没有,您可以使用null
或undefined
作为值(表示没有错误)。
// 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上的大多数(好)软件包。