Javascript 如何编写此方法以使回调参数有效?

Javascript 如何编写此方法以使回调参数有效?,javascript,node.js,Javascript,Node.js,这是npm的Twitter包中的一个方法 T.get('search/tweets', params, function(err, data, response) { if(!err){ // This is where the magic will happen } else { console.log(err); } }) 我知道通常你会写一个回调函数的方法 T.prototype.get = function(url, options, callb

这是npm的Twitter包中的一个方法

  T.get('search/tweets', params, function(err, data, response) {
  if(!err){
    // This is where the magic will happen
  } else {
    console.log(err);
  }
})
我知道通常你会写一个回调函数的方法

    T.prototype.get = function(url, options, callback) {
    //code here
    callback();

}
我的问题是如何将“err”、“data”和“response”值传递给回调函数。它是通过做以下事情来实现的吗

callback(error, returnedTweets, reponseObject);

是的,参数由回调调用方发送到回调,在您的示例中,回调调用方是
T.get()
的内部实现。因此,如果您在回调函数中得到三个参数,如
函数(err、data、response).
,那么这是因为回调函数是通过三个参数调用的,这三个参数的类型与此匹配:

T.prototype.get = function(url, options, callback) {
    //code here
    callback(err, data, response);

}

传递的参数在本地命名并不重要。因此,在
T.get()
实现内部,这些参数可能有不同的名称:

T.prototype.get = function(url, options, callback) {
    //code here
    callback(error, returnedTweets, reponseObject);
}
传递给回调的是这些变量的值。它们在实现中的名称对回调本身没有意义


在此代码中声明回调时给它们的名称也不相关:

T.get('search/tweets', params, function(err, data, response) {
    // callback implementation here
});
您可以为回调参数选择任何名称。回调参数是按特定顺序传递的,因此无论您在回调声明中对第一个参数命名什么,它都将具有调用回调时传递的第一个参数的值。Javascript中的参数是按顺序/位置,而不是按名称。例如,您可以这样命名它们:

T.get('search/tweets', params, function(arg1, arg2, arg3) {
    // callback implementation here
});

而且,代码仍然可以正常工作,尽管可读性要低得多,因为只需知道arg1是错误值,arg2是数据等等。因此,大多数开发人员选择有意义的名称来帮助描述该参数中的预期内容。但是,回调参数的名称完全取决于您。

您在帖子底部提出的问题的答案是:是的,这正是正在发生的事情。您是否尝试过查找该包的来源?是的,你应该找一条这样的线。