1

我们的效果定义为:

@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()在减速器中手动执行,它确实会被捕获。

现在这对我来说完全是个谜。

有什么想法吗?

4

0 回答 0