我是Node.js的新手。我想将body.xyz的值存储在变量A中,并希望像我在代码末尾那样从外部访问请求。这是我的代码,如何设置变量值。在程序结束时显示空值。
var request = require('request');
URL = "http://aaaa.com/api.php"
// Decleare the variables
var A = null;
PARAMS_0 = {
'a':"query"
}
request.get( {
url: URL,
qs: PARAMS_0
},
function(error, response, body) {
body = JSON.parse( body)
A = body.xyz
}
);
console.log( A )
答案 0 :(得分:0)
显示为空是因为在request.get
之后执行了console.log
的回调,如果您在回调内添加console.log
,则会看到结果。
安装https://github.com/request/request-promise
尝试这个:
var request = require('request-promise');
URL = "http://aaaa.com/api.php"
PARAMS_0 = {
'a':"query"
}
(async () => {
const A = await request.get( {
url: URL,
qs: PARAMS_0
});
console.log( A );
})();
阅读本文:https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-promise-27fc71e77261
它完美地说明了承诺的概念,以及您应如何使用它们。
答案 1 :(得分:0)
如果未获得输出,只需尝试将Console.log语句放入回调中。 由于节点的异步行为,使得在另一条语句之后编写的一条语句可能被执行/首先产生输出(这是我认为您的情况正在发生的事情)的可能性。
希望有帮助。