尝试使用带有效果模块的ngrx。我正在调度一个动作,通过一个效果做一些异步的事情,然后我正在调度一个新的动作来更新状态,然后重定向。这是我正在做的事情的精简版:
@Injectable()
export class Effects {
@Effect()
start$: Observable<Action> = this.actions$
.ofType('start')
// omitted for brevity
.concatMap(action => [
new finishAction(action.payload),
go(['/'])
])
.catch((err) => {
console.log('err', err);
return Observable.empty();
})
constructor(private actions$: Actions) {
}
}
这一切都很好 - 当我调度一个start
动作时,这个效果会启动,调度一个finish
动作,然后重定向回根目录(通过go
从@ngrx/router-store
.
我如何处理失败的事情finishAction
?目前我在控制台中遇到错误,然后go
无论如何都运行。
理想情况下,我想拦截这个失败,并调度另一个动作(所以我可以显示一个模式或其他东西,但不做重定向)