123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import { Observable } from '../Observable';
- import { ArrayObservable } from './ArrayObservable';
- import { isScheduler } from '../util/isScheduler';
- import { mergeAll } from '../operators/mergeAll';
- export function merge(...observables) {
- let concurrent = Number.POSITIVE_INFINITY;
- let scheduler = null;
- let last = observables[observables.length - 1];
- if (isScheduler(last)) {
- scheduler = observables.pop();
- if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {
- concurrent = observables.pop();
- }
- }
- else if (typeof last === 'number') {
- concurrent = observables.pop();
- }
- if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {
- return observables[0];
- }
- return mergeAll(concurrent)(new ArrayObservable(observables, scheduler));
- }
|