Node.js中的成语callback

按照约定在Node中,asynchronouscallback接受一个错误作为它的第一个参数。 如果成功,则第一个参数不能出现。 我个人习惯写

callback(undefined, result); 

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

 callback(null, result); 

盛行。 是否“正式”logging在任何地方? 哪两个选项是惯用的节点? 有没有什么重要的理由可以相互比较?

如果我们将“惯用节点”解释为“什么节点本身”,那么null就是惯用的。 如果你在节点提示符(在* nix机器上)input这个值,你将会得到结果:

 require("fs").readFile("/dev/null", function (err) { console.log(err === null) }) 

我已经尝试了其他来自fs模块的callback,并得到了相同的行为。 我没有testing过所有使用callback函数的Node API的地方。

我还没有find一个引用,指出在这种情况下,Node 必须err设置为null

如果您担心是否使用null与undefined,则使用null。 严格来说,在JavaScript中undefined被认为是exception的。

你可以阅读更多关于在JavaScript和null和undefined之间的区别是什么? 。

还有一个关于Node.jscallback约定的好post – http://blog.gvm-it.eu/post/22040726249/callback-conventions-in-node-js-how-and-why

在出错的情况下, undefinednull总是被认为是相同的。

你可以使用他们两个。 人们只使用null,因为它更短。

如果您正在检查错误,则可以使用if (err == null) { ... }方法在一个语句中检查null和undefined。

Interesting Posts