【问题标题】:NodeJS callback with null as first argument以 null 作为第一个参数的 NodeJS 回调
【发布时间】:2014-03-20 06:12:44
【问题描述】:

我刚刚开始使用 NodeJS,并试图掌握回调的窍门。

今天,我在许多示例中看​​到 null 作为回调的第一个参数传递。请帮助我了解它为什么存在以及我为什么需要它。

示例 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(err, response) 是如何编写回调函数的标准约定。如果没有错误则传递'null'
  • 这是我的第一个想法,但我不确定。谢谢!

标签: node.js


【解决方案1】:

按照节点的约定,回调的第一个参数通常用于指示错误。如果它不是null,则操作由于某种原因不成功——可能是被调用者无法恢复但调用者可以恢复的东西。第一个参数之后的任何其他参数都用作操作的返回值(成功消息、检索等)

这纯粹是按照惯例,没有什么可以阻止您编写一个将成功作为第一个参数传递给回调的函数。如果您打算编写一个被其他节点用户采用的库,您可能会希望遵守约定,除非您有充分的理由不这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 2011-11-04
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多