【发布时间】:2019-05-21 07:46:06
【问题描述】:
我有一个使用 rxjs 用 typescript 编写的应用程序,我使用 flatMap 返回一个包含 5000 个可观察对象的列表,但我不希望同时订阅它们。
我尝试使用 concatMap,但它让我的应用程序非常慢,因为它按顺序一个接一个地处理。
我有兴趣创建一个包含 10 个订阅的池,当一个订阅结束另一个开始时,这将只保持 10 个订阅同时处于活动状态。
我想我可以创建一个手动控制,但我想知道是否有更好的方法,使用其他类型的地图或策略。
【问题讨论】:
-
为什么需要 5000 个 observables?你能添加更多关于你想要达到的目标的细节吗?
-
@Anas 我有一个 id 列表,需要通过蓝牙连接获取数据。
-
尝试使用
mergeMap- 它采用限制并发的concurrent参数。concatMap使用mergeMap实现,并发为 1。 -
@cartant 这正是我想要的。其实 flatMap 是 mergeMap 的别名。
标签: typescript dictionary rxjs flatmap concatmap