我正在学习节点,我似乎无法弄清楚的一件事是回调签名。似乎大多数回调通常采用以下形式
function myCallback(err, doc)
这是有道理的。但后来我遇到了一些其他模块,比如 node-easyimage,它随便提到了具有不同签名的示例,比如
function myCallback(err, stdout, stderr)
没有提到哪些 API 需要哪种格式的回调,所以我最终深入研究了代码。但是鉴于几乎从未提及回调签名;我觉得有一条潜规则我没读过。有没有?
我正在学习节点,我似乎无法弄清楚的一件事是回调签名。似乎大多数回调通常采用以下形式
function myCallback(err, doc)
这是有道理的。但后来我遇到了一些其他模块,比如 node-easyimage,它随便提到了具有不同签名的示例,比如
function myCallback(err, stdout, stderr)
没有提到哪些 API 需要哪种格式的回调,所以我最终深入研究了代码。但是鉴于几乎从未提及回调签名;我觉得有一条潜规则我没读过。有没有?
不幸的是,没有标准的方法,所以你只需要习惯每个包使用的技术。这是一个普遍的 Javascript 问题,而不仅仅是 node.js,这就是为什么TypeScript具有如此吸引力的原因。
虽然确实没有标准,但 Node 社区正在慢慢地围绕一个约定合并callback(error, results)
,其中results
可能是字符串、数组、对象等,具体取决于 API。