Sha256: 84ac2718272e511f32cf0fc19cac9735dc5edc9d491ec7b5fe4bc76bd603963c

Contents?: true

Size: 1.32 KB

Versions: 49

Compression:

Stored size: 1.32 KB

Contents

import { IScheduler } from '../Scheduler';
import { Observable } from '../Observable';
import { Subscriber } from '../Subscriber';
import { TeardownLogic } from '../Subscription';

/**
 * We need this JSDoc comment for affecting ESDoc.
 * @extends {Ignored}
 * @hide true
 */
export class ScalarObservable<T> extends Observable<T> {
  static create<T>(value: T, scheduler?: IScheduler): ScalarObservable<T> {
    return new ScalarObservable(value, scheduler);
  }

  static dispatch(state: any): void {
    const { done, value, subscriber } = state;

    if (done) {
      subscriber.complete();
      return;
    }

    subscriber.next(value);
    if (subscriber.closed) {
      return;
    }

    state.done = true;
    (<any> this).schedule(state);
  }

  _isScalar: boolean = true;

  constructor(public value: T, private scheduler?: IScheduler) {
    super();
    if (scheduler) {
      this._isScalar = false;
    }
  }

  /** @deprecated internal use only */ _subscribe(subscriber: Subscriber<T>): TeardownLogic {
    const value = this.value;
    const scheduler = this.scheduler;

    if (scheduler) {
      return scheduler.schedule(ScalarObservable.dispatch, 0, {
        done: false, value, subscriber
      });
    } else {
      subscriber.next(value);
      if (!subscriber.closed) {
        subscriber.complete();
      }
    }
  }
}

Version data entries

49 entries across 49 versions & 4 rubygems

Version Path
ilog-0.4.1 node_modules/rxjs/src/observable/ScalarObservable.ts
ilog-0.4.0 node_modules/rxjs/src/observable/ScalarObservable.ts
ilog-0.3.3 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-18.0.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.21.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.20.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.19.1 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.19.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.18.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.17.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.16.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.15.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.14.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.13.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.12.2 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.12.1 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.12.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.11.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.10.0 node_modules/rxjs/src/observable/ScalarObservable.ts
govuk_publishing_components-17.9.0 node_modules/rxjs/src/observable/ScalarObservable.ts