'cb'在环回中意味着什么?

Ken*_*wok 12 callback node.js loopbackjs

我正在尝试学习环回,但我真的不明白'cb'在函数调用中的含义.我在环回文档中读到了变量'cb'代表什么?我对nodejs中的回调有基本的了解,但我只是不了解环回中的cb.例如,http://docs.strongloop.com/display/public/LB/Remote+methods.

module.exports = function(Person){

    Person.greet = function(msg, cb) {
      cb(null, 'Greetings... ' + msg);
    }

    Person.remoteMethod(
        'greet',  
        {
          accepts: {arg: 'msg', type: 'string'},
          returns: {arg: 'greeting', type: 'string'}
        }
    ); 
};
Run Code Online (Sandbox Code Playgroud)

这个cb是什么意思?我们怎么知道它接受两个参数,null和一个字符串?希望有人能提供帮助.

lag*_*lex 11

所以你有一个Async函数Person.greet,你会这样调用:

Person.greet('hello', function(err){
    ...
});
Run Code Online (Sandbox Code Playgroud)

请注意,在'hello'传递了第二个参数后,它实际上是一个函数.它也可以在外面用名称定义并以这种方式传递:

function callback(err){
    ...
}
Person.greet('hello', callback);
Run Code Online (Sandbox Code Playgroud)

现在它看起来是如何Person.greet定义的:

Person.greet = function(msg, cb) {
  cb(null, 'Greetings... ' + msg);
}
Run Code Online (Sandbox Code Playgroud)

这里的区别只是在定义中它使用了不同的名称:cb.它可以使用任何名称,因为它cb只是一个参数.但通常使用"cb","done"或"next"作为标准练习.

  • @KenKwok我知道已经晚了,但我认为回送中的“returns”对象默认了回调,这就是为什么回送中没有自定义定义并且它仅适用于API (2认同)