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