UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

32 lines (31 loc) 1.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeAllObservable = void 0; function mergeAllObservable(subscribe, maxNumberOfSubscriptions) { if (maxNumberOfSubscriptions === void 0) { maxNumberOfSubscriptions = Number.POSITIVE_INFINITY; } maxNumberOfSubscriptions = Math.max(0, maxNumberOfSubscriptions); return function (emit) { var running = true; var childrenUnsubscribeFunctions = []; var unsubscribe = subscribe(function (childSubscribe) { childrenUnsubscribeFunctions.push(childSubscribe(emit)); if (childrenUnsubscribeFunctions.length > maxNumberOfSubscriptions) { childrenUnsubscribeFunctions.shift()(); } }); return function () { if (running) { running = false; unsubscribe(); for (var i = 0, l = childrenUnsubscribeFunctions.length; i < l; i++) { childrenUnsubscribeFunctions[i](); } } }; }; } exports.mergeAllObservable = mergeAllObservable;