如何在Node js中创建变量全局?

时间:2017-10-30 23:35:55

标签: javascript node.js

我正在调用一个将返回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

我认为必须使解释变量全局化。我怎么做?有没有更好的方法来做上述事情?

1 个答案:

答案 0 :(得分:0)

好吧,console.log只会打印undefined,因为它是在发送请求后立即执行但不等待响应返回(不阻塞)。但是,确实会更新explanation变量。

检查一下,如果请求需要1秒,你可以使用setTimeout 2000ms然后使用console.log它。