Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript RxJS FlatMap和ConcatMap中间解决方案?_Typescript_Dictionary_Rxjs_Flatmap_Concatmap - Fatal编程技术网

Typescript RxJS FlatMap和ConcatMap中间解决方案?

Typescript RxJS FlatMap和ConcatMap中间解决方案?,typescript,dictionary,rxjs,flatmap,concatmap,Typescript,Dictionary,Rxjs,Flatmap,Concatmap,我有一个使用rxjs用typescript编写的应用程序,其中我使用flatMap返回5000个可观察对象的列表,但我不希望同时订阅它们 我尝试使用concatMap,但它让我的应用程序非常慢,因为它按顺序一个接一个地处理 我感兴趣的是创建一个类似于10个订阅的池,当一个订阅结束另一个订阅开始时,这将同时只保持10个订阅处于活动状态 我想我可以创建一个手动控件,但我想知道是否有更好的方法,使用其他类型的映射或策略。cartant的提示帮助我找到解决方案,对于下面的代码,您可以使用flatMap或

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

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

我感兴趣的是创建一个类似于10个订阅的池,当一个订阅结束另一个订阅开始时,这将同时只保持10个订阅处于活动状态


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

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

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

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

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

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

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

为什么需要5000个观察值?您可以添加更多关于您试图实现的目标的详细信息吗?@Anas我有一个ID列表,其中需要通过蓝牙连接获取数据。请尝试使用
mergeMap
——它使用
concurrent
参数来限制并发性
concatMap
是使用并发度为1的
mergeMap
实现的。@cartant这正是我想要的。事实上,flatMap是mergeMap的别名。为什么需要5000个观测值?您可以添加更多关于您试图实现的目标的详细信息吗?@Anas我有一个ID列表,其中需要通过蓝牙连接获取数据。请尝试使用
mergeMap
——它使用
concurrent
参数来限制并发性
concatMap
是使用并发度为1的
mergeMap
实现的。@cartant这正是我想要的。实际上,flatMap是mergeMap的别名。