无法使用回调函数使用 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);
我从 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);