如何使用请求承诺从nodejs中的HTTP GET请求获取字符串响应到变量

时间:2018-08-22 04:40:14

标签: node.js

我想调用Web服务并获取对变量的字符串响应。这是我的代码。但是分配给变量的值是“未定义”。谁能帮我。

const request = require('request-promise');

function web() {
  return request("https://8f41d5af.ngrok.io/webhook/testRequest")
    .then(function(response) {
      return JSON.parse(response);
    });
}

function main() {
  var y;
  web().then(function(result) {
    y = result;
  });
  console.log('response from server=>' + y)
}

1 个答案:

答案 0 :(得分:0)

您应该在设置变量后打印

function main() {
  var y;
  web().then(function(result) {
    y = result;
    console.log('response from server=>' + y)
  });
  // this line executes before the value is set as it is set asynchronously 
  //console.log('response from server=>' + y)
}

您还可以确保对诺言进行正确的链接。

function web() {
  return request("https://8f41d5af.ngrok.io/webhook/testRequest")
    .then(function(response) {
      //return JSON.parse(response);
      return Promise.resolve(JSON.parse(response));
    });
}