Кумар Маниш Чауби

В 2017 году, когда ES8 был выпущен с лучшим улучшением, но есть критические изменения async/await, где мы можем дождаться выполнения, пока обещание не вернется. Но это не работает в функциях-прототипах массива, когда мы используем карту, foreach и т. д.

Что произойдет в коде ниже?

Итак, как мы знаем, поведение итерации обещания должно ожидать someAsyncOperation до завершения выполнения одного процесса. Но он не будет ждать асинхронной операции.

Что делать ?

Теперь давайте подумаем традиционным образом и создадим свой собственный итератор, который поможет выполнить наше требование.

Создайте функцию asyncForEach для перебора каждого элемента массива, где line_items — это массив, а asyncIterator — итератор для асинхронной обработки каждого значения массива.

Примечание. Помните, что asyncIterator должен возвращать обещание.

И здесь мы идем….

Теперь этот вызов будет ожидать завершения выполнения someAsyncOperation для каждого элемента, и выполнение будет работать асинхронно в JavaScript.

Обратите внимание, что функция обратного вызова должна возвращать Promise.

Теперь вам нужно создать асинхронную карту и фильтр. Давайте сделаем это….

Спасибо, что прочитали предложение, ценное для улучшения :)

Мэниш Чауби