无法使用回调函数使用 get 请求的响应

Can`t use the response from a get request using callback function

我从 url 发出一个 get 请求,我尝试在另一个函数中进一步使用响应,所以这是我首先尝试的。

var request = require("request");

function getJSON(getAddress) {
    request.get({
        url: getAddress,
        json: true,
    }, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            return body;
        }
     })
 }

function showJSON(getAddress, callback) {
    var test = callback(getAddress);
    console.dir(test);
}

showJSON('http://api.open-notify.org/astros.json', getJSON);

然而,当我 运行 我的脚本

node ./test.js 

我明白了

'undefined' as a console message

我不知道这可能来自哪里,因为我是 node.js、javascript

的新手
var test = callback(getAddress);

是一个异步函数

console.dir(test);

在执行之前不会等待它完成,因此你会变得不确定。要让它工作,你必须做

var request = require("request");

function getJSON(getAddress, callback) {
    request.get({
        url: getAddress,
        json: true,
    }, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            callback(body);
        }
     })
 }

function showJSON(getAddress, callback) {
    callback(getAddress, function(test){
        console.dir(test);
    });
}

showJSON('http://api.open-notify.org/astros.json', getJSON);