Асинхронное / ожидание анализа JSON - PullRequest
0 голосов
/ 27 февраля 2019

Так что у меня есть фрагмент кода, подобный этому, и мне нужно реорганизовать его для использования map / forEach.

       async function asyncForEach(array, callback) {
          for (let index = 0; index < array.length; index++) {
              await callback(array[index], index, array);
          }
       }

Но когда я использую карту, как показано ниже, она просто анализирует весь json, не ожидая отдельных записеймассива для отправки каждой записи с задержкой в ​​функции обратного вызова.

      async function asyncForEach(array, callback) {
       await array.map(async (item, index) => {
         await callback(array[index], index, array);
       });
      }

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 27 февраля 2019

Вы должны использовать Promise.all, поскольку await в массиве (хотя он содержит обещания) ничего не делает:

 await Promise.all(array.map(/*...*/));

Я бы написал это как:

  const asyncForEach = (array, callback) =>
     Promise.all(array.map(callback));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...