123456789101112131415161718192021222324252627282930 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.refCount = void 0;
- var lift_1 = require("../util/lift");
- var OperatorSubscriber_1 = require("./OperatorSubscriber");
- function refCount() {
- return lift_1.operate(function (source, subscriber) {
- var connection = null;
- source._refCount++;
- var refCounter = OperatorSubscriber_1.createOperatorSubscriber(subscriber, undefined, undefined, undefined, function () {
- if (!source || source._refCount <= 0 || 0 < --source._refCount) {
- connection = null;
- return;
- }
- var sharedConnection = source._connection;
- var conn = connection;
- connection = null;
- if (sharedConnection && (!conn || sharedConnection === conn)) {
- sharedConnection.unsubscribe();
- }
- subscriber.unsubscribe();
- });
- source.subscribe(refCounter);
- if (!refCounter.closed) {
- connection = source.connect();
- }
- });
- }
- exports.refCount = refCount;
- //# sourceMappingURL=refCount.js.map
|