首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js中的同步HTTP请求

Node.js中的同步HTTP请求
EN

Stack Overflow用户
提问于 2018-05-21 20:11:41
回答 1查看 3.7K关注 0票数 1

我有三个组件ABC。当AB发送一个HTTP请求时,B会向C发送另一个HTTP请求,检索相关内容并将其作为HTTP响应发送回A

下面的Node.js片段表示B组件。

var requestify = require('requestify');

// sends an HTTP request to C and retrieves the response content
function remoterequest(url, data) {
  var returnedvalue;
  requestify.post(url, data).then(function(response) {
    var body = response.getBody();
    // TODO use body to send back to the client the number of expected outputs, by setting the returnedvalue variable
  });
  return returnedvalue;
}

// manages A's request
function manageanotherhttprequest() {
  // [...]
  var res = remoterequest(url, data);
  // possible elaboration of res
  return res;
}

作为remoterequest函数的结果,我需要返回body内容。我注意到,目前POST请求是异步的。因此,在将returnedvalue变量返回给调用方法之前,决不会对其赋值。

如何执行同步HTTP请求?

EN

回答 1

Stack Overflow用户

发布于 2018-05-21 20:17:43

您正在使用restify,一旦调用它的方法(postget..etc ),它将返回promise。但是您创建的remoterequest方法不会返回promise,让您使用.then等待。您可以使用async-await或内置promise来返回promise,如下所示:

使用promise的

var requestify = require('requestify');//向C发送HTTP请求,获取响应内容函数remoterequest(url,data) { var return data;return new Promise((resolve) => { requestify.post(url,data).then(function ( response ) { var body = response.getBody();// TODO通过设置return data变量},使用body向客户端返回期望输出数量);//在处理结束时返回resolve( returnedvalue );}).catch(err => { console.log(err);});} //管理A的请求函数manageanotherhttprequest() { remoterequest(url,data).then(res => { return res;});}使用异步等待的

var requestify = require('requestify');//发送HTTP请求到C,获取响应内容异步函数remoterequest(url,data) { try { var return data;var response = await requestify.post(url,data);var body = response.getBody();// TODO通过设置return data变量// return在处理结束时返回return return data;} catch (err) { console.log(err);};} //管理A的请求异步函数管理其他remoterequest(){ var res = await remoterequest(url,data);return res;}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50448635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档