Мне нужно дождаться запуска всех вызовов axios в функции, вызванной циклом forEach, прежде чем я вызову другую функцию для перезагрузки данных, которые должны обновляться вызовами axios.
function1() {
let arr = [1, 2, 3, 4, 5];
arr.forEach((num) => {
function2(num);
});
//Wait until each call in the forEach loop above
//is done before running the function3() function.
function3();
}
function2(number) {
axios.post('/internal-url/action/' + number)
.then((response) => {
return response;
});
}
function3() {
console.log('reloading data...');
/* DB call to reload data */
console.log('data is reloaded');
}
Проблема здесь в том, что данные перезагружаются до завершения вызовов axios. Я знаю, что вызовы axios работали, потому что я вижу, что они обновлены в базе данных, но мне нужно, чтобы function1()
дождался завершения всех вызовов axios в function2()
, прежде чем выполнять перезагрузку в function3()
.
Я пытался сделать функции function1()
и function2()
async/await
одновременно и по отдельности, но это не сработало. Как бы я поступил так конкретно?