У меня есть функция в моем проекте, которая обрабатывает большинство моих запросов API (см. Упрощенный черновик ниже)
function sendRequest(){
var reqbody;
var resp;
reqbody = unimportantRandomFunction();
request.post({
headers: { 'content-type' : 'application/xml',
'accept' : 'application/xml'},
url: process.env.APIURL,
body: reqbody
}, function(error, response, body){
resp = convert.xml2js(body, {compact:true});
});
return resp;
}
Проблема, с которой я сталкиваюсь, заключается в том, что request.post асинхронный и к тому времени, когда я получаю ответ, неопределенное значение уже возвращено. Я попытался поэкспериментировать с обещаниями (что-то, для чего я совершенно новичок), но, очевидно, я также не могу поместить свой возврат в блок .then, потому что этот возврат не будет принадлежать функции sendRequest (исправьте меня, если я ошибаюсь). Какие-нибудь идеи, где я мог бы поместить свое возвращаемое заявление, чтобы заставить это работать, то есть ждать назначения значения "resp"?