回调不起作用它打印为未定义

时间:2014-04-30 02:46:21

标签: node.js

我有一个上一个问题Object [object Object] has no method 'test'现在对象的问题已经消失,但回调不起作用,控制台.log打印未定义

this.test = function(callback) {
  callback('i am test');
};
var self = this;
module.exports.config = function (settings, callback) {
  self.test(function(err,res){
    console.log(res);
  });
};

请忽略,因为我是nodejs的新手

1 个答案:

答案 0 :(得分:0)

this.test()期望一个将作为第一个参数传递一个字符串的回调。你给它一个回调函数,它使用第二个参数,而不是第一个参数。由于没有第二个参数传递给回调,因此您可以获得undefined

从此处更改您的电话:

  self.test(function(err,res){
    console.log(res);
  });

到此:

  self.test(function(err){
    console.log(err);
  });

或者,或者更改this.test()的实现以将第二个参数传递给其回调。

this.test = function(callback) {
  // pass two arguments to the callback
  callback('i am test', 'this is me');
};
var self = this;
module.exports.config = function (settings, callback) {
  self.test(function(err,res){
    // now both arguments err and res are available here
    console.log(res);
  });
};