0

我有一个使用 rxjs 用 typescript 编写的应用程序,其中我使用 flatMap 返回 5000 个可观察对象的列表,但我不希望同时订阅它们。

我尝试使用 concatMap 但它让我的应用程序非常慢,因为它按顺序一个接一个地处理。

我有兴趣创建一个包含 10 个订阅的池,当一个订阅结束另一个开始时,这将同时保持 10 个订阅处于活动状态。

我想我可以创建一个手动控制,但我有兴趣知道是否有更好的方法,使用其他类型的地图或策略。

4

1 回答 1

3

@cartant 的提示帮助我找到了解决方案,对于下面的代码,您可以使用 flatMap 或 mergeMap,因为它们是相同的。

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

这段代码只是为了传递如何使用 flatMap/mergeMap 的并发参数的想法。数字 10 是并发参数。

于 2018-12-21T11:24:16.353 回答