Запустите асинхронный параллельно только с одним обратным вызовом - PullRequest
0 голосов
/ 08 октября 2018

У меня есть вопрос, который может быть глупым.Поправьте меня, если я ошибаюсь.

Я получаю 1 000 результатов с конечной точки REST.Однако результаты разбиваются на токены и разбиваются на массивы из 100 элементов.После того, как я обработал 100 элементов, мне нужен обратный вызов, чтобы получить следующие 100.

Ниже приведен мой код для работы с массивом

  async.eachSeries(body.hits.hits, function(hit, loopHit) {
      check_order(hit, loopHit);
  }, function done() {
      // get next array
  });

Причина, по которой я здесь выполняю асинхронность, заключается в том, что мне нужно знатькогда я завершу все 100 результатов (функция выполнена).

Результат - мне нужно запустить все 100 элементов один за другим (в check_order я подключаюсь к другой точке REST и жду там обратного вызова), и я хотел бы запустить все из них одновременно и один разпоследний завершен. Я хотел бы получить следующий массив из первой конечной точки.

Есть идеи?

1 Ответ

0 голосов
/ 08 октября 2018

Ваш обратный вызов отсутствует в асинхронном режиме:

  async.eachSeries(body.hits.hits, function(hit, loopHit) {
      check_order(hit);
      loopHit();
  }, function done() {
      // get next array
  });

А также вы даете обратный вызов loopHit в функции checkHit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...