我遇到了从另一个函数嵌套在函数中的函数返回的问题。代码非常复杂,但我在这里嘲笑了一些东西:
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()
?