关于2个rxjs观测值和一个计时器的问题

关于2个rxjs观测值和一个计时器的问题,rxjs,nestjs,Rxjs,Nestjs,在nestjs CQS传奇的背景下,我有一个关于rxjs的问题 假设我有一个场景,其中有两个事件一个接一个地发布。一个设置值,另一个取消设置。我需要能够监听设置值3秒的事件,如果在此期间没有发布另一个事件,则执行一些操作 以下是一些初学者代码: valuePersisted = (events$: Observable<any>): Observable<ICommand> => { return events$ .pipe( ofType(ValueH

在nestjs CQS传奇的背景下,我有一个关于rxjs的问题

假设我有一个场景,其中有两个事件一个接一个地发布。一个设置值,另一个取消设置。我需要能够监听设置值3秒的事件,如果在此期间没有发布另一个事件,则执行一些操作

以下是一些初学者代码:

valuePersisted = (events$: Observable<any>): Observable<ICommand> => {
return events$
  .pipe(
    ofType(ValueHasBeenSet),
    map(event => {
      return new SomeCommand();
    }),
  );
}
valuepersistend=(事件$:可观察):可观察=>{
返回事件$
.烟斗(
ofType(值已被设置),
映射(事件=>{
返回新的SomeCommand();
}),
);
}
我需要以某种方式收听
valuehasbeenset
事件,如果在一段时间内收到此事件,则从流中取消

编辑


我刚刚意识到事件
ValueHasBeenSet
ValueHasBeenSet
可以设置和取消设置不同的值类型,代码应该区分这两种类型。例如,两个事件都有一个名为
type
的属性,其值可以是
“blue”|“yellow”
。是否有一种方法可以保留每个事件类型的逻辑,只保留两个通用事件
ValueHasBeenSet
ValueHasBeenSet

考虑以以下方式实现它:

返回事件$
.烟斗(

ofType(ValueHasBeenSet),//{//,谢谢你的回答。这适用于单个事件类型。我用更复杂的用例更新了这个问题。我想我已经解决了。只需在第二个可观察对象中添加
过滤器
运算符,这样它就可以根据偶数类型进行调整。