| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | "use strict";var __extends = (this && this.__extends) || function (d, b) {    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];    function __() { this.constructor = d; }    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());};var isArray_1 = require('../util/isArray');var ArrayObservable_1 = require('../observable/ArrayObservable');var OuterSubscriber_1 = require('../OuterSubscriber');var subscribeToResult_1 = require('../util/subscribeToResult');function race() {    var observables = [];    for (var _i = 0; _i < arguments.length; _i++) {        observables[_i - 0] = arguments[_i];    }    // if the only argument is an array, it was most likely called with    // `race([obs1, obs2, ...])`    if (observables.length === 1) {        if (isArray_1.isArray(observables[0])) {            observables = observables[0];        }        else {            return observables[0];        }    }    return new ArrayObservable_1.ArrayObservable(observables).lift(new RaceOperator());}exports.race = race;var RaceOperator = (function () {    function RaceOperator() {    }    RaceOperator.prototype.call = function (subscriber, source) {        return source.subscribe(new RaceSubscriber(subscriber));    };    return RaceOperator;}());exports.RaceOperator = RaceOperator;/** * We need this JSDoc comment for affecting ESDoc. * @ignore * @extends {Ignored} */var RaceSubscriber = (function (_super) {    __extends(RaceSubscriber, _super);    function RaceSubscriber(destination) {        _super.call(this, destination);        this.hasFirst = false;        this.observables = [];        this.subscriptions = [];    }    RaceSubscriber.prototype._next = function (observable) {        this.observables.push(observable);    };    RaceSubscriber.prototype._complete = function () {        var observables = this.observables;        var len = observables.length;        if (len === 0) {            this.destination.complete();        }        else {            for (var i = 0; i < len && !this.hasFirst; i++) {                var observable = observables[i];                var subscription = subscribeToResult_1.subscribeToResult(this, observable, observable, i);                if (this.subscriptions) {                    this.subscriptions.push(subscription);                }                this.add(subscription);            }            this.observables = null;        }    };    RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {        if (!this.hasFirst) {            this.hasFirst = true;            for (var i = 0; i < this.subscriptions.length; i++) {                if (i !== outerIndex) {                    var subscription = this.subscriptions[i];                    subscription.unsubscribe();                    this.remove(subscription);                }            }            this.subscriptions = null;        }        this.destination.next(innerValue);    };    return RaceSubscriber;}(OuterSubscriber_1.OuterSubscriber));exports.RaceSubscriber = RaceSubscriber;//# sourceMappingURL=race.js.map
 |