Web服务必须返回回调函数的结果

时间:2019-07-23 12:53:17

标签: javascript node.js

请在Node中考虑以下代码。 Web服务的功能是具有输入和输出参数的Web服务提供程序。由于这只是一个示例,因此没有输入参数:

var request = require('request');

function mywebservice() {

    request.get(
        'http://www.google.com',
        function(error, response, body) {
            if (!error && response.statusCode == 200) {
                console.log(body);


            }
        }
    );

    return body

}

我需要返回 body 变量,因为Web服务必须返回该变量,但是我找不到在return语句中使该变量已知的方法。即使有诺言,body的值也会存在于函数中,并且不知道如何复制到变量body。

我已经阅读:How do I return the response from an asynchronous call? 并且我还没有找到在我的Web服务的响应中获取变量的解决方案。

1 个答案:

答案 0 :(得分:-2)

var request = require('request');

this.mywebservice = async () => {
  let body = await this.promisedService()
  console.log(body)
  return body
}


this.promisedService = () => {
  return new Promise( (res, rej) => {
    request.get('http://www.google.com', (error, response, body) => {
      if (!error && response.statusCode == 200) {
        return res(body);
      }
    })
  })
}

this.mywebservice()