У меня есть три компонента A
, B
и C
.Когда A
отправляет HTTP-запрос на B
, B
отправляет другой HTTP-запрос на C
, получает относительное содержимое и отправляет его обратно на A
в качестве ответа HTTP.
Компонент B
представлен следующим фрагментом Node.js.
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;
}
Мне нужно вернуть содержимое body
в результате выполнения функции remoterequest
.Я замечаю, что в настоящее время запрос POST является асинхронным.Следовательно, переменная returnedvalue
никогда не назначается до ее возвращения вызывающему методу.
Как выполнить синхронные HTTP-запросы?