node.js - 调用错误优先功能Node JS

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

我是Node的新手,但是很开心,我在尝试将数据传递给具有两个参数err/argTime的函数时遇到了一个问题。例如:function(err,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);
        };
};

非常感谢任何见解!

最佳答案

您需要传递一个值作为错误,但是如果没有,则可以使用nullundefined作为值(不代表任何错误)。

// 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参数始终是第一个参数,其后是stdlib中几乎每个异步函数以及GitHub/npm上的大多数(好的)软件包。

关于node.js - 调用错误优先功能Node JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45745272/

相关文章:

javascript - yeoman/JS : Repeating HTML blocks in a HTML template - compiling to eventually integrate with Wordpress?

python - Python 嵌套函数是否可以写入时复制?

PHP:未知语法可能是一个没有括号的函数?

javascript - Web服务错误捕获(Jquery + asp.net Web服务)

error-handling - 谷歌分析 "There was an internal error"

javascript - 不理解 Node.js 示例中一级函数和 csv 模块事件的用法

javascript - Node sequelize 按多列排序

typescript - Aurelia Typescript http-fetch-client异步捕获不起作用

javascript - 使用Webpack编译js文件时出现 "Uncaught TypeError"

c++ - 通过复制返回局部变量 - 它是如何工作的