Использование 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
Один из пользователей платформы 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