Sha256: 36bd0538a73791c72fc78377aa609a6d4565bc6b9375916946c1b90ef4955823

Contents?: true

Size: 1.86 KB

Versions: 49

Compression:

Stored size: 1.86 KB

Contents

import { Observable } from '../Observable';
import { ScalarObservable } from './ScalarObservable';
import { EmptyObservable } from './EmptyObservable';
/**
 * We need this JSDoc comment for affecting ESDoc.
 * @extends {Ignored}
 * @hide true
 */
export class ArrayLikeObservable extends Observable {
    constructor(arrayLike, scheduler) {
        super();
        this.arrayLike = arrayLike;
        this.scheduler = scheduler;
        if (!scheduler && arrayLike.length === 1) {
            this._isScalar = true;
            this.value = arrayLike[0];
        }
    }
    static create(arrayLike, scheduler) {
        const length = arrayLike.length;
        if (length === 0) {
            return new EmptyObservable();
        }
        else if (length === 1) {
            return new ScalarObservable(arrayLike[0], scheduler);
        }
        else {
            return new ArrayLikeObservable(arrayLike, scheduler);
        }
    }
    static dispatch(state) {
        const { arrayLike, index, length, subscriber } = state;
        if (subscriber.closed) {
            return;
        }
        if (index >= length) {
            subscriber.complete();
            return;
        }
        subscriber.next(arrayLike[index]);
        state.index = index + 1;
        this.schedule(state);
    }
    /** @deprecated internal use only */ _subscribe(subscriber) {
        let index = 0;
        const { arrayLike, scheduler } = this;
        const length = arrayLike.length;
        if (scheduler) {
            return scheduler.schedule(ArrayLikeObservable.dispatch, 0, {
                arrayLike, index, length, subscriber
            });
        }
        else {
            for (let i = 0; i < length && !subscriber.closed; i++) {
                subscriber.next(arrayLike[i]);
            }
            subscriber.complete();
        }
    }
}
//# sourceMappingURL=ArrayLikeObservable.js.map

Version data entries

49 entries across 49 versions & 4 rubygems

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