UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

41 lines (40 loc) 1.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.combineLatest = void 0; var single_1 = require("../../values/single/single.cjs"); function combineLatest(observables) { var length = observables.length; if (length === 0) { return (0, single_1.single)([]); } else { return function (emit) { var values = Array.from({ length: length }); var received = Array.from({ length: length }); var receivedCount = 0; var unsubscribe = observables.map(function (subscribe, index) { return subscribe(function (value) { values[index] = value; if (!received[index]) { received[index] = true; receivedCount++; } if (receivedCount === length) { emit(values); } }); }); return function () { for (var i = 0, l = unsubscribe.length; i < l; i++) { unsubscribe[i](); } }; }; } } exports.combineLatest = combineLatest;