@lifaon/rx-js-light
Version:
Blazing fast Observables
36 lines (35 loc) • 967 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.takeObservable = void 0;
var async_unsubscribe_1 = require("../../../../../../misc/helpers/async-unsubscribe.cjs");
var empty_1 = require("../../../../../built-in/from/without-notifications/values/empty/empty.cjs");
function takeObservable(subscribe, count) {
if (count <= 0) {
return (0, empty_1.empty)();
} else {
return function (emit) {
var running = true;
var unsubscribe = subscribe(function (value) {
if (running) {
--count;
if (count === 0) {
running = false;
(0, async_unsubscribe_1.asyncUnsubscribe)(function () {
return unsubscribe;
});
}
emit(value);
}
});
return function () {
if (running) {
running = false;
unsubscribe();
}
};
};
}
}
exports.takeObservable = takeObservable;