Ohm-Management - Projektarbeit B-ME
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

exhaust.js 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
  2. import * as tslib_1 from "tslib";
  3. import { OuterSubscriber } from '../OuterSubscriber';
  4. import { subscribeToResult } from '../util/subscribeToResult';
  5. export function exhaust() {
  6. return function (source) { return source.lift(new SwitchFirstOperator()); };
  7. }
  8. var SwitchFirstOperator = /*@__PURE__*/ (function () {
  9. function SwitchFirstOperator() {
  10. }
  11. SwitchFirstOperator.prototype.call = function (subscriber, source) {
  12. return source.subscribe(new SwitchFirstSubscriber(subscriber));
  13. };
  14. return SwitchFirstOperator;
  15. }());
  16. var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) {
  17. tslib_1.__extends(SwitchFirstSubscriber, _super);
  18. function SwitchFirstSubscriber(destination) {
  19. var _this = _super.call(this, destination) || this;
  20. _this.hasCompleted = false;
  21. _this.hasSubscription = false;
  22. return _this;
  23. }
  24. SwitchFirstSubscriber.prototype._next = function (value) {
  25. if (!this.hasSubscription) {
  26. this.hasSubscription = true;
  27. this.add(subscribeToResult(this, value));
  28. }
  29. };
  30. SwitchFirstSubscriber.prototype._complete = function () {
  31. this.hasCompleted = true;
  32. if (!this.hasSubscription) {
  33. this.destination.complete();
  34. }
  35. };
  36. SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {
  37. this.remove(innerSub);
  38. this.hasSubscription = false;
  39. if (this.hasCompleted) {
  40. this.destination.complete();
  41. }
  42. };
  43. return SwitchFirstSubscriber;
  44. }(OuterSubscriber));
  45. //# sourceMappingURL=exhaust.js.map