В моем приложении реагирования я выполняю вызов axios внутри каждого цикла, однако программа не ожидает ответа на запрос GET, а выполняет следующую часть программы. Когда это в конечном счете решает обещание, это слишком поздно. Как приостановить выполнение программы, пока axios не вернется из своего запроса.
В двух словах, мне нужны axios, чтобы вернуть результат, а затем продолжить синхронный запуск остальной части программы.
Я попытался использовать параметры async / await, однако, похоже, это не сработало. Мне нужно, чтобы Аксиос работал синхронно.
pids.forEach((i1) => loadedContent.forEach((i2, idx) => {
if (i1 === i2.available_versions.version[0].pid || i1 ===
i2.versionPid) {
axios.get(`https://programmes.api.hebel.com/dougi/api/versions?
anshur${i1}`).then((response) => {
xml2js.parseString(response.data, function(err, result) {
loadedContent[idx].nCrid =
result.gui.results[0].vastilp[0].roundup[0].identifier[0]._
alert(loadedContent[idx].nCrid)
//Need it to go into here, however it is bypassing this and
continuing
//on to line 111
});
}).catch(e => {
console.log('error', e);
});
}
}))
Я ожидаю, что axios будет работать синхронно или, по крайней мере, подождет, пока обещание не будет выполнено, прежде чем продолжить.