Javascript 提供模块API时缺少回调的预期行为

Javascript 提供模块API时缺少回调的预期行为,javascript,node.js,Javascript,Node.js,希望这不是太抽象,但我正在寻找有关创建节点模块API时预期行为的建议。我发现在我的模块实现中,检查以确保调用者在我调用它之前提供了回调变得混乱。我开始认为它的用户错误是没有为显然需要回调才能完成其工作的API提供回调 作为节点初学者,模块的一般模式是什么?我查看了节点源代码本身。在某些地方,他们似乎使用了一个函数,将不适用的回调与抛出错误的通用回调交换。但这似乎会导致混乱 谢谢您可以提供默认回调。根据您的需要和回调的重要性,您可以提供一个noop函数,或者只提供一个只检查是否有错误的函数 if

希望这不是太抽象,但我正在寻找有关创建节点模块API时预期行为的建议。我发现在我的模块实现中,检查以确保调用者在我调用它之前提供了回调变得混乱。我开始认为它的用户错误是没有为显然需要回调才能完成其工作的API提供回调

作为节点初学者,模块的一般模式是什么?我查看了节点源代码本身。在某些地方,他们似乎使用了一个函数,将不适用的回调与抛出错误的通用回调交换。但这似乎会导致混乱


谢谢

您可以提供默认回调。根据您的需要和回调的重要性,您可以提供一个
noop
函数,或者只提供一个只检查是否有错误的函数

if (!callback) {
  callback = function noop() {}
}
抛出或显示您将决定的错误。(最好不要扔掉大多数箱子)


一种常见的模式——将回调函数缺少引用解释为执行同步方法的顺序。
if (!callback) {
  callback = function handleError(e) {
               if (e) console.log(e);
               // Or
               if (e) throw(new Error(e))
             }
}