"use strict"; var isScheduler_1 = require('../util/isScheduler'); var ArrayObservable_1 = require('../observable/ArrayObservable'); var mergeAll_1 = require('./mergeAll'); /** * Joins this observable with multiple other observables by subscribing to them one at a time, starting with the source, * and merging their results into the returned observable. Will wait for each observable to complete before moving * on to the next. * @params {...Observable} the observables to concatenate * @params {Scheduler} [scheduler] an optional scheduler to schedule each observable subscription on. * @returns {Observable} All values of each passed observable merged into a single observable, in order, in serial fashion. */ function concat() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i - 0] = arguments[_i]; } return concatStatic.apply(void 0, [this].concat(observables)); } exports.concat = concat; /** * Joins multiple observables together by subscribing to them one at a time and merging their results * into the returned observable. Will wait for each observable to complete before moving on to the next. * @params {...Observable} the observables to concatenate * @params {Scheduler} [scheduler] an optional scheduler to schedule each observable subscription on. * @returns {Observable} All values of each passed observable merged into a single observable, in order, in serial fashion. */ function concatStatic() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i - 0] = arguments[_i]; } var scheduler = null; var args = observables; if (isScheduler_1.isScheduler(args[observables.length - 1])) { scheduler = args.pop(); } return new ArrayObservable_1.ArrayObservable(observables, scheduler).lift(new mergeAll_1.MergeAllOperator(1)); } exports.concatStatic = concatStatic; //# sourceMappingURL=concat.js.map