SubjectSubscription.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. "use strict";
  2. var __extends = (this && this.__extends) || (function () {
  3. var extendStatics = function (d, b) {
  4. extendStatics = Object.setPrototypeOf ||
  5. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  6. function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  7. return extendStatics(d, b);
  8. }
  9. return function (d, b) {
  10. extendStatics(d, b);
  11. function __() { this.constructor = d; }
  12. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  13. };
  14. })();
  15. Object.defineProperty(exports, "__esModule", { value: true });
  16. var Subscription_1 = require("./Subscription");
  17. var SubjectSubscription = (function (_super) {
  18. __extends(SubjectSubscription, _super);
  19. function SubjectSubscription(subject, subscriber) {
  20. var _this = _super.call(this) || this;
  21. _this.subject = subject;
  22. _this.subscriber = subscriber;
  23. _this.closed = false;
  24. return _this;
  25. }
  26. SubjectSubscription.prototype.unsubscribe = function () {
  27. if (this.closed) {
  28. return;
  29. }
  30. this.closed = true;
  31. var subject = this.subject;
  32. var observers = subject.observers;
  33. this.subject = null;
  34. if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {
  35. return;
  36. }
  37. var subscriberIndex = observers.indexOf(this.subscriber);
  38. if (subscriberIndex !== -1) {
  39. observers.splice(subscriberIndex, 1);
  40. }
  41. };
  42. return SubjectSubscription;
  43. }(Subscription_1.Subscription));
  44. exports.SubjectSubscription = SubjectSubscription;
  45. //# sourceMappingURL=SubjectSubscription.js.map