UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

36 lines (35 loc) 860 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.conditionalObservable = void 0; function conditionalObservable(subscribe, condition) { return function (emit) { var running = true; var unsubscribe = null; var lastValue; var _unsubscribe = function () { if (unsubscribe !== null) { unsubscribe(); unsubscribe = null; } }; var unsubscribeOfCondition = condition(function (value) { if (value !== lastValue) { lastValue = value; _unsubscribe(); if (value && running) { unsubscribe = subscribe(emit); } } }); return function () { if (running) { running = false; unsubscribeOfCondition(); _unsubscribe(); } }; }; } exports.conditionalObservable = conditionalObservable;