UNPKG

rxjs

Version:

Reactive Extensions for modern JavaScript

32 lines (28 loc) 1.64 kB
import { ObservableInput, ObservableInputTuple, OperatorFunction, SchedulerLike } from '../types'; import { operate } from '../util/lift'; import { argsOrArgArray } from '../util/argsOrArgArray'; import { mergeAll } from './mergeAll'; import { popNumber, popScheduler } from '../util/args'; import { from } from '../observable/from'; /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */ export function merge<T, A extends readonly unknown[]>(...sources: [...ObservableInputTuple<A>]): OperatorFunction<T, T | A[number]>; /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */ export function merge<T, A extends readonly unknown[]>( ...sourcesAndConcurrency: [...ObservableInputTuple<A>, number] ): OperatorFunction<T, T | A[number]>; /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */ export function merge<T, A extends readonly unknown[]>( ...sourcesAndScheduler: [...ObservableInputTuple<A>, SchedulerLike] ): OperatorFunction<T, T | A[number]>; /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */ export function merge<T, A extends readonly unknown[]>( ...sourcesAndConcurrencyAndScheduler: [...ObservableInputTuple<A>, number, SchedulerLike] ): OperatorFunction<T, T | A[number]>; export function merge<T>(...args: unknown[]): OperatorFunction<T, unknown> { const scheduler = popScheduler(args); const concurrent = popNumber(args, Infinity); args = argsOrArgArray(args); return operate((source, subscriber) => { mergeAll(concurrent)(from([source, ...(args as ObservableInput<T>[])], scheduler)).subscribe(subscriber); }); }