Асинхронный forEach в JavaScript

javascript

Для начала давайте взглянем на polyfill метода. На официальной странице developer.mozilla.org реализация достаточно подробно описывает всю суть данного метода. Если опустить все проверки на существование тех или иных объектов в контексте текущего браузера и стандарта, то можно написать примерно такой метод, выделив основные действия:

В данном примере отсутствует проверка на контекст. В качестве аргумента у нас выступает только callback.

РЕКОМЕНДУЕМ:
Бесплатные общедоступные CDN для jQuery, Bootstrap, JavaScript

После чего инициализируем массив и напишем метод, который будет симулировать fetch запрос. Для простоты я решил создать массив чисел. Функция «stubFetch» принимает два аргумента: первый — элемент массива, второй — время в миллисекундах. Promise возвращает setTimeout, который просто выводит значения в консоль.

Применим нативный метод.

image

В консоли мы увидим вывод фразы «foo» на каждой итерации, а «bar» в контексте данного решения не имеет смысла. А что, если мы хотим просмотреть ответ сервера и провести какие-то DOM-манипуляции? Или запушить его в массив ответов например? В данном случае достаточно сделать callback асинхронным.

image

Все три варианта использования асинхронного forEach делают абсолютно одно и тоже. Все зависит от стандартов компании, от личных предпочтений, ну и конечно же от поддержки async/await.

РЕКОМЕНДУЕМ:
Как написать безопасный код на JavaScript

Конечно же, данным постом я не открыл Америку, но для возможных дискуссий будет в самый раз.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий