Промежуточное решение RxJS FlatMap и ConcatMap?

У меня есть приложение, написанное на машинописном языке с использованием rxjs, где я использую flatMap, чтобы вернуть список из 5000 наблюдаемых, но я не хочу, чтобы все они были подписаны одновременно.

Я попытался использовать concatMap, но это позволяет моему приложению работать очень медленно, так как оно обрабатывает последовательно одну за другой.

Я заинтересован в создании чего-то вроде пула из 10 подписок, где, когда одна заканчивается, запускается другая, это будет поддерживать только 10 подписок активными одновременно.

Я предполагаю, что могу создать ручное управление этим, но мне интересно знать, есть ли лучший подход, используя какую-то другую карту или стратегию.

1 ответ

Решение

Совет @cartant поможет мне найти решение, для приведенного ниже кода вы можете использовать flatMap или mergeMap, поскольку они одинаковы.

this.service.getData(id).flatMap(data => {
  return Observable.of(data);
}, 10).do(value => {
  console.log(value);
})

Этот код просто для передачи идеи, как использовать параллельный параметр flatMap/mergeMap. Число 10 - это параллельный параметр.

Другие вопросы по тегам