Кумар Маниш Чауби
В 2017 году, когда ES8 был выпущен с лучшим улучшением, но есть критические изменения async/await, где мы можем дождаться выполнения, пока обещание не вернется. Но это не работает в функциях-прототипах массива, когда мы используем карту, foreach и т. д.
Что произойдет в коде ниже?
Итак, как мы знаем, поведение итерации обещания должно ожидать someAsyncOperation до завершения выполнения одного процесса. Но он не будет ждать асинхронной операции.
Что делать ?
Теперь давайте подумаем традиционным образом и создадим свой собственный итератор, который поможет выполнить наше требование.
Создайте функцию asyncForEach для перебора каждого элемента массива, где line_items — это массив, а asyncIterator — итератор для асинхронной обработки каждого значения массива.
Примечание. Помните, что asyncIterator должен возвращать обещание.
И здесь мы идем….
Теперь этот вызов будет ожидать завершения выполнения someAsyncOperation для каждого элемента, и выполнение будет работать асинхронно в JavaScript.
Обратите внимание, что функция обратного вызова должна возвращать Promise.
Теперь вам нужно создать асинхронную карту и фильтр. Давайте сделаем это….
Спасибо, что прочитали предложение, ценное для улучшения :)
Мэниш Чауби