Sha256: 407bc00635b8e8741fcecf1d831ab8103870e6c143b80592d85803c53e97397a

Contents?: true

Size: 962 Bytes

Versions: 49

Compression:

Stored size: 962 Bytes

Contents

import { Subject } from './Subject';
import { Subscriber } from './Subscriber';
import { Subscription, ISubscription } from './Subscription';
import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';

/**
 * @class BehaviorSubject<T>
 */
export class BehaviorSubject<T> extends Subject<T> {

  constructor(private _value: T) {
    super();
  }

  get value(): T {
    return this.getValue();
  }

  /** @deprecated internal use only */ _subscribe(subscriber: Subscriber<T>): Subscription {
    const subscription = super._subscribe(subscriber);
    if (subscription && !(<ISubscription>subscription).closed) {
      subscriber.next(this._value);
    }
    return subscription;
  }

  getValue(): T {
    if (this.hasError) {
      throw this.thrownError;
    } else if (this.closed) {
      throw new ObjectUnsubscribedError();
    } else {
      return this._value;
    }
  }

  next(value: T): void {
    super.next(this._value = value);
  }
}

Version data entries

49 entries across 49 versions & 4 rubygems

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