У меня есть приложение, в котором запрос базы данных возвращает несколько строк (как правило, менее 100). Для каждой строки мне нужно сделать http-вызов для получения дополнительных данных. Я хотел бы отключить все запросы, а затем, когда завершится последний обратный вызов, перейдите к отображению страницы результатов.Шаблоны для обработки списков async в node.js
До сих пор ответы на похожие вопросы, на которые я смотрел, либо связывали запросы, выполнив запрос №2 в обратном вызове для запроса № 1 (преимущества: простые, избегают захоронения сервера в нескольких запросах) или путем запуска всех запросов без отслеживания завершения всех запросов (хорошо работает в браузере, где обратный вызов обновляет пользовательский интерфейс).
Мой текущий план состоит в том, чтобы сохранить счетчик выполненных запросов и уменьшить счетчик обратного вызова счетчика; если он достигает нуля, я могу вызвать функцию рендеринга. Мне также может потребоваться обработать случай, когда ответы приходят быстрее, чем запросы (вряд ли, но возможный случай края).
Есть ли другие полезные шаблоны для этого типа проблем?
'queue' функция в [асинхронной модуль] (https://github.com/caolan/async/#queue) точно что вы ищете. – Dogbert
['node-seq'] (https://github.com/substack/node-seq) также можно использовать для этого. – NilsH