12345678910111213141516171819202122232425262728293031323334353637 |
- import { OuterSubscriber } from '../OuterSubscriber';
- import { subscribeToResult } from '../util/subscribeToResult';
- export function exhaust() {
- return (source) => source.lift(new SwitchFirstOperator());
- }
- class SwitchFirstOperator {
- call(subscriber, source) {
- return source.subscribe(new SwitchFirstSubscriber(subscriber));
- }
- }
- class SwitchFirstSubscriber extends OuterSubscriber {
- constructor(destination) {
- super(destination);
- this.hasCompleted = false;
- this.hasSubscription = false;
- }
- _next(value) {
- if (!this.hasSubscription) {
- this.hasSubscription = true;
- this.add(subscribeToResult(this, value));
- }
- }
- _complete() {
- this.hasCompleted = true;
- if (!this.hasSubscription) {
- this.destination.complete();
- }
- }
- notifyComplete(innerSub) {
- this.remove(innerSub);
- this.hasSubscription = false;
- if (this.hasCompleted) {
- this.destination.complete();
- }
- }
- }
- //# sourceMappingURL=exhaust.js.map
|