RxJS 使用唯一键重播最后一条消息

问题描述 投票:0回答:0

我有多种类型的事件流。在新订阅中,我想为每种类型(唯一一种)重复最新事件,然后继续任何新事件。

假设我有一个事件:DoorStateChange(door_id, new_state), LockStateChange(lock_id, new_state), Booted(boot_time).

从每个事件中,我可以创建一个用于重复数据删除的字符串,

DoorStateChange/${door_id}
,等等

所以如果我收到事件:

Booted(129048124093)
DoorStateChange(door1, Opened)
DoorStateChange(door2, Closed)
DoorStateChange(door1, Closed)
LockStateChange(door1, Locked)
LockStateChange(door2, Locked)
LockStateChange(door1, Opened)

如果我有一个新订阅者,我希望它立即收到以下内容,然后是所有其他事件:

Booted(129048124093)
DoorStateChange(door2, Closed)
DoorStateChange(door1, Closed)
LockStateChange(door2, Locked)
LockStateChange(door1, Opened)

如何实现?我需要 shareReplay,带有某种过滤器,所以旧值被覆盖......或者更好的是,指定每种类型/标识符重播的消息数。

rxjs rxjs-observables
相关问题
热门问答
最新问题