【问题标题】:nodejs calling a variable outside of a scopenodejs在范围外调用变量
【发布时间】:2016-05-23 13:47:01
【问题描述】:

我正在使用 nodejs,在 JS 文件中我有下面的代码来检索数据。 当我尝试在范围之外使用数据时它不起作用我得到的内容未定义 whloe 时间..

var data = {};
request.get({url: 'https://my-host/Mypath'}, function(err, response, body) {


  if (err) {
      console.error(err);
      data.err = err;
  }

  data= body;


});
console.log('Data: ', data);

我的主要问题是我必须发送带有数据的 res.render 并且我需要向服务器发出多个请求。

【问题讨论】:

  • console.log(data) 将在 AJAX 请求完成之前运行

标签: javascript node.js scope render


【解决方案1】:

您正在进行异步调用。 console.log() 在请求之前执行。尝试将该 console.log 移到请求回调中,它会起作用。

要在请求函数之外使用它,你需要返回一个promise。也许试试 Q 工具: https://github.com/kriskowal/q

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-22
    • 2014-08-29
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2020-08-06
    • 2015-08-20
    • 2020-02-29
    相关资源
    最近更新 更多