不触发后续动作的动作

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

Github 链接 到我的示例程序。

在文件app.component.ts中创建了一个会话到期操作,一旦超时就会触发

 timerExpiration : setTimeout(() => {
          this.store.dispatch(SessionActions.expirationTimerElapsed())
        }, 2000) as unknown as number  ,

一次以上动作

SessionActions.expirationTimerElapsed
的效果完成,

SessionActions.terminateSession
应该触发行动

session.effects.ts

expiredTimer = createEffect(()=> 
    this.actions.pipe(
      ofType(SessionActions.expirationTimerElapsed),
      map(()=> SessionActions.terminateSession({reason :'TimeOut'}))
    )
  );

但是 SessionActions.terminateSession 没有被调用。

知道我做错了什么吗?

angular ngrx ngrx-store ngrx-effects angular-ngrx-data
1个回答
0
投票

效果需要在模块中注册。 有关详细信息,请参阅文档:https://ngrx.io/guide/effects#registering-root-effects

© www.soinside.com 2019 - 2024. All rights reserved.