… await в циклах?
я понимаю работу этого механизма, но именно о комбинации async … await с циклами в инете очень плохая информация
что меня интересует?
- есть много видов циклов, переборов: for (let i=0; i<num; i++), for … in, for … of; forEach, map — для массивов;
- некоторые из них являются асинхронными (сразу вопрос №1: что такое асинхронность? это когда мы хотим, чтобы код выполнялся последовательно, да?), некоторые не являются. Сразу вопрос №2, где прочекать поддержку async … await
как это правильно использовать?
допустим, я хочу обновить много данных в бд (они не зависят друг от друга), у меня есть массив id
const updateRequests = [123, 456, 678].map(async (id) => {
await получаемЮзера();
await сохраняемЮзера();
})
теперь мне нужно дождаться сохранения всего до продолжения следующих операций
await Promise.all(updateRequests); — сразу вопрос №3. В данном случае, насколько я понимаю, промисы в массиве необязательно последовательно выполняются. То есть может быть такой порядок: [pending, 456, pending] —> [123, 456, 678]. Как изменить код, чтобы выполнение в порядке индексов происходило?
вопрос №4: что по поводу синтаксиса return new Promise()? Что будет, если его использовать? Как это будет выглядить?
КИДАЙТЕ СТАТЬЮ/ВИДЕО, ГДЕ РАЗОБРАНЫ МОИ ВОПРОСЫ
https://www.digitalocean.com/community/tutorials/understanding-the-event-loop-callbacks-promises-and-async-await-in-javascript
У тебя имя это эксплоит?
Обсуждают сегодня