; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
exports.raceInit = exports.race = void 0; | |
var Observable_1 = require("../Observable"); | |
var innerFrom_1 = require("./innerFrom"); | |
var argsOrArgArray_1 = require("../util/argsOrArgArray"); | |
var OperatorSubscriber_1 = require("../operators/OperatorSubscriber"); | |
function race() { | |
var sources = []; | |
for (var _i = 0; _i < arguments.length; _i++) { | |
sources[_i] = arguments[_i]; | |
} | |
sources = argsOrArgArray_1.argsOrArgArray(sources); | |
return sources.length === 1 ? innerFrom_1.innerFrom(sources[0]) : new Observable_1.Observable(raceInit(sources)); | |
} | |
exports.race = race; | |
function raceInit(sources) { | |
return function (subscriber) { | |
var subscriptions = []; | |
var _loop_1 = function (i) { | |
subscriptions.push(innerFrom_1.innerFrom(sources[i]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { | |
if (subscriptions) { | |
for (var s = 0; s < subscriptions.length; s++) { | |
s !== i && subscriptions[s].unsubscribe(); | |
} | |
subscriptions = null; | |
} | |
subscriber.next(value); | |
}))); | |
}; | |
for (var i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) { | |
_loop_1(i); | |
} | |
}; | |
} | |
exports.raceInit = raceInit; | |
//# sourceMappingURL=race.js.map |