NodeJS,在回调中的回调中从回调返回

时间:2016-03-07 16:33:50

标签: javascript node.js asynchronous callback

我遇到了从另一个函数嵌套在函数中的函数返回的问题。代码非常复杂,但我在这里嘲笑了一些东西:

var request = require('request');
var _url = 'test.com/data/data.json';

function getValue() {
  var val = 0;
  return callFromURL(function(result){
    if(result) {
      // Do stuff...

      console.log(result); //Returns a value
      return result;
    }
  })
}

function callFromURL(callback) {
  request(_url, function (error, response, body) {
        if (!error && response.statusCode === 200) {
            var service = JSON.parse(body);
            return callback(service);
        } else {
            log.error(error);
            return callback(null);
        }
    });
}


function test() {
  getValue(); //returns undefined
}

当我逐步使用调试器或console.log语句时,我发现传递给callFromURL的回调中的内部返回未定义,但return callbackFromURL的结果是undefined。如何从此示例中的result函数正确返回getValue()

0 个答案:

没有答案
相关问题