Node.js中惯用的成功回调

Iva*_*tov 7 javascript asynchronous idioms node.js

按照惯例,Node中的异步回调接受错误作为其第一个参数.如果成功,第一个参数不得出现.我个人习惯写

callback(undefined, result);
Run Code Online (Sandbox Code Playgroud)

在这种情况下.但是,我在其他人的代码中看到了

callback(null, result);
Run Code Online (Sandbox Code Playgroud)

盛行.是否"正式"记录在任何地方?这两个选项中哪一个是惯用节点?是否有任何重要理由选择一个而不是另一个?

Lou*_*uis 9

如果我们将"惯用节点"解释为"节点本身的作用",那么null就是惯用语.如果您在Node提示符下输入(在*nix机器上),您将获得true:

require("fs").readFile("/dev/null", function (err) { console.log(err === null) })
Run Code Online (Sandbox Code Playgroud)

我尝试过来自fs模块的其他回调并得到了相同的行为.我没有测试Node的API中使用回调的所有地方.

我还没有发现,指出节点参考必须设置errnull在这种情况下.