Промежуточное решение 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 - это параллельный параметр.