以null作为第一个参数的NodeJScallback

我刚刚开始使用NodeJS,试图获得callback的挂钩。

今天我已经看到作为第一个参数的callback在许多例子中的空值。 请帮我理解为什么在那里,为什么我需要它。

例1

UserSchema.methods.comparePassword = function(pwd, callback) { bcrypt.compare(pwd, this.password, function(err, isMatch) { if (err) return callback(err); callback(null, isMatch); }); }; 

例2

 example.method = { foo: function(callback){ setTimeout(function(){ callback(null, 'foo'); }, 100); } } 

按照约定在节点中,callback的第一个参数通常用于指示错误。 如果null ,那么由于某种原因操作失败 – 可能是被调用者无法从中恢复,但是调用者可以从中恢复。 第一个之后的任何其他参数被用作操作的返回值(成功消息,检索等)

这纯粹是按照惯例,没有什么可以阻止你写一个函数,它将成功作为第一个parameter passing给callback函数。 如果你打算编写一个被其他节点用户采用的库,除非你有一个非常好的理由,否则你可能会希望遵循惯例。