diff --git a/src/operator/mergeMapTo.ts b/src/operator/mergeMapTo.ts index 9af1464884..b6b40ef05d 100644 --- a/src/operator/mergeMapTo.ts +++ b/src/operator/mergeMapTo.ts @@ -2,8 +2,6 @@ import {Observable} from '../Observable'; import {Operator} from '../Operator'; import {PartialObserver} from '../Observer'; import {Subscriber} from '../Subscriber'; -import {tryCatch} from '../util/tryCatch'; -import {errorObject} from '../util/errorObject'; import {Subscription} from '../Subscription'; import {OuterSubscriber} from '../OuterSubscriber'; import {InnerSubscriber} from '../InnerSubscriber'; @@ -73,17 +71,26 @@ export class MergeMapToSubscriber extends OuterSubscriber { innerSub: InnerSubscriber): void { const { resultSelector, destination } = this; if (resultSelector) { - const result = tryCatch(resultSelector)(outerValue, innerValue, outerIndex, innerIndex); - if (result === errorObject) { - destination.error(errorObject.e); - } else { - destination.next(result); - } + this.trySelectResult(outerValue, innerValue, outerIndex, innerIndex); } else { destination.next(innerValue); } } + private trySelectResult(outerValue: T, innerValue: R, + outerIndex: number, innerIndex: number): void { + const { resultSelector, destination } = this; + let result: R2; + try { + result = resultSelector(outerValue, innerValue, outerIndex, innerIndex); + } catch (err) { + destination.error(err); + return; + } + + destination.next(result); + } + notifyError(err: any): void { this.destination.error(err); }