调用错误优先函数 Node JS
Calling an error-first function Node JS
Node 的新手并且玩得很开心,但是,我在尝试将数据传递给具有两个参数 err/argTime 的函数时遇到了问题。 ex:function(错误,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);
};
};
非常感谢任何见解!
您需要传递一个值作为错误,但如果没有,您可以使用 null
或 undefined
作为值(表示没有错误)。
// No error:
queryTrigger(null, moment());
// Explicit error:
queryTrigger((new Error('Error!')), moment());
// Variable error from function response:
queryTrigger(isErrored(), moment());
在回答您的后续评论时,您通常只在调用在主事件循环之外引发错误的异步函数时需要此模式 - 如果您不这样做,您可以只使用 try/catch
处理错误。
我不同意 this answer 中关于最佳实践的说法; err
参数基本上总是第一个参数,后面跟着标准库中的几乎所有异步函数以及 GitHub/npm.
上的大多数(好的)包
Node 的新手并且玩得很开心,但是,我在尝试将数据传递给具有两个参数 err/argTime 的函数时遇到了问题。 ex:function(错误,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);
};
};
非常感谢任何见解!
您需要传递一个值作为错误,但如果没有,您可以使用 null
或 undefined
作为值(表示没有错误)。
// No error:
queryTrigger(null, moment());
// Explicit error:
queryTrigger((new Error('Error!')), moment());
// Variable error from function response:
queryTrigger(isErrored(), moment());
在回答您的后续评论时,您通常只在调用在主事件循环之外引发错误的异步函数时需要此模式 - 如果您不这样做,您可以只使用 try/catch
处理错误。
我不同意 this answer 中关于最佳实践的说法; err
参数基本上总是第一个参数,后面跟着标准库中的几乎所有异步函数以及 GitHub/npm.