请在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服务的响应中获取变量的解决方案。
答案 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()