From 14410c66b8be5cd666161e218985387306d3458a Mon Sep 17 00:00:00 2001 From: Brandon Date: Tue, 30 Jul 2019 20:46:05 -0600 Subject: [PATCH] Revert "fix(effects): resubscribe every time an error occurs (#2023) (#2026)" (#2037) This reverts commit 5b489124f7e6d1f211603cca92aab658dc1688da. --- modules/effects/spec/effect_sources.spec.ts | 8 ++++---- modules/effects/src/effects_resolver.ts | 19 +++++++------------ 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/modules/effects/spec/effect_sources.spec.ts b/modules/effects/spec/effect_sources.spec.ts index d7f746d62f..0ed8af2ac0 100644 --- a/modules/effects/spec/effect_sources.spec.ts +++ b/modules/effects/spec/effect_sources.spec.ts @@ -248,9 +248,9 @@ describe('EffectSources', () => { it('should resubscribe on error by default', () => { class Eff { @Effect() - b$ = hot('a--e--b--e--c--e--d').pipe( + b$ = hot('a--b--c--d').pipe( map(v => { - if (v == 'e') throw new Error('An Error'); + if (v == 'b') throw new Error('An Error'); return v; }) ); @@ -258,8 +258,8 @@ describe('EffectSources', () => { const sources$ = of(new Eff()); - // 👇'e' is ignored. - const expected = cold('a-----b-----c-----d'); + // 👇 'b' is ignored. + const expected = cold('a-----c--d'); expect(toActions(sources$)).toBeObservable(expected); }); diff --git a/modules/effects/src/effects_resolver.ts b/modules/effects/src/effects_resolver.ts index 8694ce64f0..f677c0c713 100644 --- a/modules/effects/src/effects_resolver.ts +++ b/modules/effects/src/effects_resolver.ts @@ -24,19 +24,14 @@ export function mergeEffects( ? sourceInstance[propertyName]() : sourceInstance[propertyName]; - const resubscribeInCaseOfError = ( - observable$: Observable - ): Observable => - observable$.pipe( - catchError(error => { - if (errorHandler) errorHandler.handleError(error); - // Return observable that produces this particular effect - return resubscribeInCaseOfError(observable$); - }) - ); - const resubscribable$ = resubscribeOnError - ? resubscribeInCaseOfError(observable$) + ? observable$.pipe( + catchError(error => { + if (errorHandler) errorHandler.handleError(error); + // Return observable that produces this particular effect + return observable$; + }) + ) : observable$; if (dispatch === false) {