Rxjs 可观测到的群和去盎司?

Rxjs 可观测到的群和去盎司?,rxjs,Rxjs,我有一个可观测的物体,它发射一个包含几个参数的物体。在对象中,一个参数(称为optionId)明确标识一个选项。我想消除所有这种发射的例子。但是,如果出现一个新的optionId,我想启动一个新的时钟,并启动一个新的去盎司 下面是我要寻找的大理石图示例: -----1----1-----1----3----3----3----3-----1---3---1---3---1------> (magic operators for which I'm unclear) ------------

我有一个可观测的物体,它发射一个包含几个参数的物体。在对象中,一个参数(称为
optionId
)明确标识一个选项。我想消除所有这种发射的例子。但是,如果出现一个新的
optionId
,我想启动一个新的时钟,并启动一个新的去盎司

下面是我要寻找的大理石图示例:

-----1----1-----1----3----3----3----3-----1---3---1---3---1------>
(magic operators for which I'm unclear)
-------------------1-------------------3-----1---3---1---3---1--->
我有debounce,我喜欢,但它是这样的:

-----1----1-----1----3----3----3----3-----1---3---1---3---1------>
debounce
-------------------1-------------------3--------------------1---->

它会跳过最后所有的中间3。。。这有意义吗?

我想你在找这个:

source$.pipe(
groupBy(item=>item.optionId),
映射(组=>group.pipe(
去BounceTime(1000),
)),
mergeAll(),
).subscribe(console.log);
这是基于
optionId
,将源分组为一个更高阶的可观测值,这将为每个组提供一个可观测值。然后,每个组分别映射到一个解块版本,最后我们将其合并到一起


使用
map
返回一个可观测值实际上是我们想要的,这是极少数情况之一。:-)

我想你在找这个:

source$.pipe(
groupBy(item=>item.optionId),
映射(组=>group.pipe(
脱冰时间(1000),
)),
mergeAll(),
).subscribe(console.log);
这是基于
optionId
,将源分组为一个更高阶的可观测值,这将为每个组提供一个可观测值。然后,每个组分别映射到一个取消公告的版本,最后我们将其合并到一起


使用
map
返回一个可观测值实际上是我们想要的,这是极少数情况之一。:-)

如果你能给我一些反馈,我将不胜感激。