尝试使用带有效果模块的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无论如何都运行。
理想情况下,我想拦截这个失败,并调度另一个动作(所以我可以显示一个模式或其他东西,但不做重定向)