1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { Observable } from '../Observable';
- import { subscribeToResult } from '../util/subscribeToResult';
- import { OuterSubscriber } from '../OuterSubscriber';
- /**
- * We need this JSDoc comment for affecting ESDoc.
- * @extends {Ignored}
- * @hide true
- */
- export class IfObservable extends Observable {
- constructor(condition, thenSource, elseSource) {
- super();
- this.condition = condition;
- this.thenSource = thenSource;
- this.elseSource = elseSource;
- }
- static create(condition, thenSource, elseSource) {
- return new IfObservable(condition, thenSource, elseSource);
- }
- /** @deprecated internal use only */ _subscribe(subscriber) {
- const { condition, thenSource, elseSource } = this;
- return new IfSubscriber(subscriber, condition, thenSource, elseSource);
- }
- }
- class IfSubscriber extends OuterSubscriber {
- constructor(destination, condition, thenSource, elseSource) {
- super(destination);
- this.condition = condition;
- this.thenSource = thenSource;
- this.elseSource = elseSource;
- this.tryIf();
- }
- tryIf() {
- const { condition, thenSource, elseSource } = this;
- let result;
- try {
- result = condition();
- const source = result ? thenSource : elseSource;
- if (source) {
- this.add(subscribeToResult(this, source));
- }
- else {
- this._complete();
- }
- }
- catch (err) {
- this._error(err);
- }
- }
- }
- //# sourceMappingURL=IfObservable.js.map
|