次のように定義された効果があります。
@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
、ストア内のいくつかのフラグを変更します。
ここで、そのアクションを処理する際に、TypeError を生成するその null (LoadAllFailuerAction で送信される) のオブジェクト破壊を行う場合、そのエラーは GlobalErrorHandler (キャッチされない例外をキャッチする) によってキャッチされません。また、エフェクトの実行が停止します。
一方、まったく同じエフェクト/リデューサーのセットアップではthrow Error()
、リデューサーで手動で行うと、引っかかります。
今、それは私にとって完全な謎です。
何かご意見は?