Highload — медіа для розробників
4.11K subscribers
5.65K photos
278 videos
18 files
6.54K links
Розповідаємо про людей, які створюють код, та про код, який вони пишуть.

Зв'язатися із редакцією можна тут: news@highload.today. А щодо розміщення реклами, будь ласка, пишіть на specials@highload.today.

Наш чат https://t.me/highloadchatt
Download Telegram
​​Использование async/await в цикле forEach

Один из пользователей платформы Stack Overflow задал вопрос, правильно ли использовать асинхронные вызовы для чтения файлов в Node.js вместе с циклом forEach.

Приводим самый популярный ответ:

forEach вместе с async/await не работает так, как ожидает разработчик. Цикл запускает множество асинхронных вызовов, но функция, внутри которой он работает, сразу возвращается.

Для исследованного чтения файлов лучше использовать более современный цикл for… of, в котором await будет работать должным образом (реализация решения на картинке, предполагается что getFilePaths() работает как надо).

Для параллельного чтения файлов лучше использовать функцию map для асинхронных вызовов внутри функции Promise.all, которая дождется возвращения всех промисов.


Ссылка на решение: https://stackoverflow.com/questions/37576685/using-async-await-with-a-foreach-loop

#javascript #nodejs #promise #asyncawait #ecmascript2017