innerSubscribe.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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 Subscriber_1 = require("./Subscriber");
  17. var Observable_1 = require("./Observable");
  18. var subscribeTo_1 = require("./util/subscribeTo");
  19. var SimpleInnerSubscriber = (function (_super) {
  20. __extends(SimpleInnerSubscriber, _super);
  21. function SimpleInnerSubscriber(parent) {
  22. var _this = _super.call(this) || this;
  23. _this.parent = parent;
  24. return _this;
  25. }
  26. SimpleInnerSubscriber.prototype._next = function (value) {
  27. this.parent.notifyNext(value);
  28. };
  29. SimpleInnerSubscriber.prototype._error = function (error) {
  30. this.parent.notifyError(error);
  31. this.unsubscribe();
  32. };
  33. SimpleInnerSubscriber.prototype._complete = function () {
  34. this.parent.notifyComplete();
  35. this.unsubscribe();
  36. };
  37. return SimpleInnerSubscriber;
  38. }(Subscriber_1.Subscriber));
  39. exports.SimpleInnerSubscriber = SimpleInnerSubscriber;
  40. var ComplexInnerSubscriber = (function (_super) {
  41. __extends(ComplexInnerSubscriber, _super);
  42. function ComplexInnerSubscriber(parent, outerValue, outerIndex) {
  43. var _this = _super.call(this) || this;
  44. _this.parent = parent;
  45. _this.outerValue = outerValue;
  46. _this.outerIndex = outerIndex;
  47. return _this;
  48. }
  49. ComplexInnerSubscriber.prototype._next = function (value) {
  50. this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);
  51. };
  52. ComplexInnerSubscriber.prototype._error = function (error) {
  53. this.parent.notifyError(error);
  54. this.unsubscribe();
  55. };
  56. ComplexInnerSubscriber.prototype._complete = function () {
  57. this.parent.notifyComplete(this);
  58. this.unsubscribe();
  59. };
  60. return ComplexInnerSubscriber;
  61. }(Subscriber_1.Subscriber));
  62. exports.ComplexInnerSubscriber = ComplexInnerSubscriber;
  63. var SimpleOuterSubscriber = (function (_super) {
  64. __extends(SimpleOuterSubscriber, _super);
  65. function SimpleOuterSubscriber() {
  66. return _super !== null && _super.apply(this, arguments) || this;
  67. }
  68. SimpleOuterSubscriber.prototype.notifyNext = function (innerValue) {
  69. this.destination.next(innerValue);
  70. };
  71. SimpleOuterSubscriber.prototype.notifyError = function (err) {
  72. this.destination.error(err);
  73. };
  74. SimpleOuterSubscriber.prototype.notifyComplete = function () {
  75. this.destination.complete();
  76. };
  77. return SimpleOuterSubscriber;
  78. }(Subscriber_1.Subscriber));
  79. exports.SimpleOuterSubscriber = SimpleOuterSubscriber;
  80. var ComplexOuterSubscriber = (function (_super) {
  81. __extends(ComplexOuterSubscriber, _super);
  82. function ComplexOuterSubscriber() {
  83. return _super !== null && _super.apply(this, arguments) || this;
  84. }
  85. ComplexOuterSubscriber.prototype.notifyNext = function (_outerValue, innerValue, _outerIndex, _innerSub) {
  86. this.destination.next(innerValue);
  87. };
  88. ComplexOuterSubscriber.prototype.notifyError = function (error) {
  89. this.destination.error(error);
  90. };
  91. ComplexOuterSubscriber.prototype.notifyComplete = function (_innerSub) {
  92. this.destination.complete();
  93. };
  94. return ComplexOuterSubscriber;
  95. }(Subscriber_1.Subscriber));
  96. exports.ComplexOuterSubscriber = ComplexOuterSubscriber;
  97. function innerSubscribe(result, innerSubscriber) {
  98. if (innerSubscriber.closed) {
  99. return undefined;
  100. }
  101. if (result instanceof Observable_1.Observable) {
  102. return result.subscribe(innerSubscriber);
  103. }
  104. var subscription;
  105. try {
  106. subscription = subscribeTo_1.subscribeTo(result)(innerSubscriber);
  107. }
  108. catch (error) {
  109. innerSubscriber.error(error);
  110. }
  111. return subscription;
  112. }
  113. exports.innerSubscribe = innerSubscribe;
  114. //# sourceMappingURL=innerSubscribe.js.map