Я пытаюсь использовать async / await с axios.then () внутри цикла for. Функция не запускается или даже не пытается вызвать axios. У меня есть ощущение, что использование функции then () является частью проблемы.
Мне нужно, чтобы цикл for ожидал выполнения функции then (), прежде чем перейти к следующему элементу массива. Любые идеи, как я могу изменить свой код, чтобы заставить функции axios.then () работать асинхронно?
accounts = [{a},{b},{c}, ...] // Example of accounts array
async function get_user_data (accounts) {
// For of loop
for (let [index, user] of accounts.entries()) {
// Currently using await before axios call
await axios.get(url, headers)
.then(function(data) {
console.log(data)
})
.catch(function(error) {
console.log(error)
})
}
}
UPDATE:
Проблема в конечном итоге была вызвана интерфейсом Vue, компилирующим мое приложение. Решено, следуя решению переполнения стека , опубликованному здесь . Обратите внимание, что код теперь работает как положено. Решение, предложенное Дакре Денни, помогло мне решить, что проблема должна быть где-то в другом месте, так как он должен был работать, но не до тех пор, пока проблема с Vue не была решена. Takeaways:
- Используйте простые тесты для подтверждения проблемы, а не с кодом
- Проверьте webpack, babel и другие конфигурации компилятора, если выше не работает