23 lines
901 B
JavaScript
23 lines
901 B
JavaScript
|
import { Observable } from '../Observable';
|
||
|
import { isScheduler } from '../util/isScheduler';
|
||
|
import { mergeAll } from '../operators/mergeAll';
|
||
|
import { fromArray } from './fromArray';
|
||
|
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)(fromArray(observables, scheduler));
|
||
|
}
|
||
|
//# sourceMappingURL=merge.js.map
|