为什么getSalaries返回undefined?

时间:2017-10-10 00:10:09

标签: javascript callback undefined

我试图理解为什么getSalaries变量将未定义的日志记录到控制台。如果我用data.es(result)替换dataResult函数中的return语句,那么对Web服务的调用很好。 JSON打印好了。这是代码:

var http = require('http');

var options = {
  host: 'redacted',
  port: '80',
  path: '/redacted',
  method: 'GET',
  headers: {
    'Content-Type': 'application/json; charset=utf-8'
  }
};


var getSalaries = function(callback){

  var salaries = getMFLData(options, dataResult);
  callback(salaries);

}

var processSalaries = function(salaries){
  console.log(salaries);
}

getSalaries(processSalaries);

function getMFLData(options, callback){
  http.request(options, function(res){
    var body = '';

    res.on('data', function(chunk){
      body+= chunk;
    });

    res.on('end', function(){
      var result = JSON.parse(body);
      callback(null, result);
    });

    res.on('error', callback);

  })
  .on('error', callback)
  .end();
}

function dataResult(err, result){
  if(err){
    return console.log('an error occured getting MFL data ', err);
  }
  return result;
};

感谢您对此提供任何帮助。我只是尝试将getMFL函数重用于多个调用,但无法弄清楚如何获取返回值。

戴夫

0 个答案:

没有答案