我们将效果定义为:
@Effect()
loadAll$: Observable<Action> = this.actions$
.ofType(actions.ActionTypes.LOAD_ALL)
.map(action => action.payload)
.switchMap((options) => {
return this.service.loadAll(options)
.map(all=> new actions.LoadAllCompleteAction(all))
.catch(() => Observable.of(new actions.LoadAllFailureAction(null)));
});
有一个reducer侦听LoadAllFailureAction
并对商店中的某些标志进行了更改。
现在,如果在处理该操作时,我会对该null进行对象解析(在LoadAllFailuerAction中发送),这会生成TypeError,则GlobalErrorHandler(捕获未捕获的异常)不会捕获该错误。此外,效果停止运行。
另一方面,使用完全相同的效果/缩减器设置,如果我在reducer中手动执行throw Error()
,它确实会被捕获。
现在这对我来说完全是个谜。
有什么想法吗?