在我的一种状态下,我无法使用@Action(...)
批注,因此我想改为使用actions $流,就像这样
@State(...)
export class MyState implements NgxsOnInit {
constructor(private actions$: Actions) {}
ngxsOnInit(ctx: StateContext<any>): void {
this.actions$.pipe(ofActionSuccessful(MyAsyncAction)).subscribe(() => {
console.log('SUCCESS');
});
this.actions$
.pipe(
ofActionDispatched(MyAsyncAction),
tap(() => console.log('DISPATCHED')),
delay(1000),
map(() => console.log('DONE')
.subscribe();
}
}
不幸的是,控制台中的日志看起来像“ DISPATCHED”,“ SUCCESS”然后是“ DONE”。有没有一种方法可以在使用actions $流时处理动作生命周期?还是应该采用“旧的”方式,然后使用专用的MyAsyncActionSuccess
动作来处理这种情况?