2 var __extends = (this && this.__extends) || (function () {
3 var extendStatics = function (d, b) {
4 extendStatics = Object.setPrototypeOf ||
5 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7 return extendStatics(d, b);
9 return function (d, b) {
11 function __() { this.constructor = d; }
12 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15 Object.defineProperty(exports, "__esModule", { value: true });
16 var isArray_1 = require("../util/isArray");
17 var fromArray_1 = require("./fromArray");
18 var OuterSubscriber_1 = require("../OuterSubscriber");
19 var subscribeToResult_1 = require("../util/subscribeToResult");
22 for (var _i = 0; _i < arguments.length; _i++) {
23 observables[_i] = arguments[_i];
25 if (observables.length === 1) {
26 if (isArray_1.isArray(observables[0])) {
27 observables = observables[0];
30 return observables[0];
33 return fromArray_1.fromArray(observables, undefined).lift(new RaceOperator());
36 var RaceOperator = (function () {
37 function RaceOperator() {
39 RaceOperator.prototype.call = function (subscriber, source) {
40 return source.subscribe(new RaceSubscriber(subscriber));
44 exports.RaceOperator = RaceOperator;
45 var RaceSubscriber = (function (_super) {
46 __extends(RaceSubscriber, _super);
47 function RaceSubscriber(destination) {
48 var _this = _super.call(this, destination) || this;
49 _this.hasFirst = false;
50 _this.observables = [];
51 _this.subscriptions = [];
54 RaceSubscriber.prototype._next = function (observable) {
55 this.observables.push(observable);
57 RaceSubscriber.prototype._complete = function () {
58 var observables = this.observables;
59 var len = observables.length;
61 this.destination.complete();
64 for (var i = 0; i < len && !this.hasFirst; i++) {
65 var observable = observables[i];
66 var subscription = subscribeToResult_1.subscribeToResult(this, observable, observable, i);
67 if (this.subscriptions) {
68 this.subscriptions.push(subscription);
70 this.add(subscription);
72 this.observables = null;
75 RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
78 for (var i = 0; i < this.subscriptions.length; i++) {
79 if (i !== outerIndex) {
80 var subscription = this.subscriptions[i];
81 subscription.unsubscribe();
82 this.remove(subscription);
85 this.subscriptions = null;
87 this.destination.next(innerValue);
89 return RaceSubscriber;
90 }(OuterSubscriber_1.OuterSubscriber));
91 exports.RaceSubscriber = RaceSubscriber;
92 //# sourceMappingURL=race.js.map