????
Current Path : C:/inetpub/vhost/invest.gdtsolutions.vn/api/node_modules/rxjs/src/internal/ |
Current File : C:/inetpub/vhost/invest.gdtsolutions.vn/api/node_modules/rxjs/src/internal/BehaviorSubject.ts |
import { Subject } from './Subject'; import { Subscriber } from './Subscriber'; import { Subscription } from './Subscription'; /** * A variant of Subject that requires an initial value and emits its current * value whenever it is subscribed to. * * @class BehaviorSubject<T> */ export class BehaviorSubject<T> extends Subject<T> { constructor(private _value: T) { super(); } get value(): T { return this.getValue(); } /** @internal */ protected _subscribe(subscriber: Subscriber<T>): Subscription { const subscription = super._subscribe(subscriber); !subscription.closed && subscriber.next(this._value); return subscription; } getValue(): T { const { hasError, thrownError, _value } = this; if (hasError) { throw thrownError; } this._throwIfClosed(); return _value; } next(value: T): void { super.next((this._value = value)); } }