我有一个Angular 2服务:
import {Storage} from './storage'; import {Injectable} from 'angular2/core'; import {Subject} from 'rxjs/Subject'; @Injectable() export class SessionStorage extends Storage { private _isLoggedInSource = new Subject<boolean>(); isLoggedIn = this._isLoggedInSource.asObservable(); constructor() { super('session'); } setIsLoggedIn(value: boolean) { this.setItem('_isLoggedIn', value, () => { this._isLoggedInSource.next(value); }); } }
一切正常。但是我还有另一个不需要订阅的组件,它只需要在某个时间点获取isLoggedIn的当前值即可。我怎样才能做到这一点?
一个Subject或Observable没有的电流值。发出值时,将其传递给订户并Observable使用它完成。
Subject
Observable
如果要使用当前值,请使用BehaviorSubject专门用于该目的的值。BehaviorSubject保留最后发出的值,并立即将其发送给新订户。
BehaviorSubject
它还具有一种getValue()获取当前值的方法。
getValue()