我正在调用一个将返回json对象的API。 json对象存储在一个变量中。我试图在控制台上打印json对象的一部分。但是,一旦我退出请求{}循环,我就无法将数据加载到控制台。我该如何工作?如何使变量全局化? 我使用以下Node js脚本。 const request = require('request');
var explanation;
request('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY', { json: true }, (err, res, body) => {
if (err) { return console.log(err); }
console.log(body.url);
explanation = body.explanation;
console.log(body.explanation);
});
console.log(explanation);
控制台读取:undefined
我认为必须使解释变量全局化。我怎么做?有没有更好的方法来做上述事情?
答案 0 :(得分:0)
好吧,console.log
只会打印undefined
,因为它是在发送请求后立即执行但不等待响应返回(不阻塞)。但是,确实会更新explanation
变量。
检查一下,如果请求需要1秒,你可以使用setTimeout 2000ms然后使用console.log它。