我们的效果定义为:
@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)));
});
有一个减速器正在监听LoadAllFailureAction
并更改存储中的一些标志。
现在,如果在处理该操作时,我对该空值(在 LoadAllFailuerAction 中发送)进行对象解构,这会产生 TypeError,则 GlobalErrorHandler 不会捕获该错误(它会捕获未捕获的异常)。此外,效果停止运行。
另一方面,使用完全相同的效果/减速器设置,如果我throw Error()
在减速器中手动执行,它确实会被捕获。
现在这对我来说完全是个谜。
有什么想法吗?