import { Subscription } from '../Subscription'; import { InnerSubscriber } from '../InnerSubscriber'; import { OuterSubscriber } from '../OuterSubscriber'; import { Subscriber } from '../Subscriber'; import { subscribeTo } from './subscribeTo'; import { Observable } from '../Observable'; export function subscribeToResult( outerSubscriber: OuterSubscriber, result: any, outerValue?: T, outerIndex?: number, destination?: Subscriber ): Subscription; export function subscribeToResult( outerSubscriber: OuterSubscriber, result: any, outerValue?: T, outerIndex?: number, destination: Subscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex) ): Subscription | void { if (destination.closed) { return undefined; } if (result instanceof Observable) { return result.subscribe(destination); } return subscribeTo(result)(destination); }