Javascript @ngrx/向订户提供最后价值

Javascript @ngrx/向订户提供最后价值,javascript,rxjs,ngrx,ngrx-effects,ngrx-store,Javascript,Rxjs,Ngrx,Ngrx Effects,Ngrx Store,前几天我注意到了一些事情。我订阅了@ngrx/effects中的动作流。我注意到(我的一个问题)一个订阅了操作的组件接收最后一个调度的操作。我能看到这一点是因为@ngrx/store中的调度员是一个行为主体,引用了RxJS文档: Rx.BehaviorSubject类 表示随时间变化的值。观察者可以订阅主题以接收最后(或初始)值和所有后续通知 不幸的是,我想订阅actions流而不检索最后一个值。这给我带来了一些问题,比如当用户返回页面时显示错误消息 BehaviorSubject和Subjec

前几天我注意到了一些事情。我订阅了
@ngrx/effects
中的
动作
流。我注意到(我的一个问题)一个订阅了
操作的组件接收最后一个调度的操作。我能看到这一点是因为
@ngrx/store
中的调度员是一个
行为主体
,引用了RxJS文档:

Rx.BehaviorSubject类

表示随时间变化的值。观察者可以订阅主题以接收最后(或初始)值和所有后续通知

不幸的是,我想订阅actions流而不检索最后一个值。这给我带来了一些问题,比如当用户返回页面时显示错误消息

BehaviorSubject
Subject
(我喜欢的方式)之间的区别如下:


有没有办法做到这一点?

您可以使用“跳过”运算符跳过第一个值:

someBehaviorSubject.skip(1)

同意,但是,当我第一次发送实际操作以显示错误消息时,我将跳过它:-/如果它是一个行为主体,那么它总是有一个初始值(如果没有提供,则为未定义的值),您将只跳过该初始值。如果您保持订阅打开状态,您将在更新时获得下一个值。只需确保
skip
位于通常用于筛选操作的
类型之前。是的,在您的情况下,它最好位于任何筛选器之前。出于某种原因,它正在跳过我试图捕获的操作。按submit(提交)按钮并再次分派操作,将按预期显示错误消息