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 の現在の値を取得するだけでよい別のコンポーネントがあります。これはどのように実行できますか?
ベストアンサー1
またはSubject
にはObservable
現在値がありません。値が発行されると、サブスクライバーに渡され、Observable
その値で処理が行われます。
現在の値を取得したい場合は、BehaviorSubject
まさにその目的のために設計された を使用します。BehaviorSubject
最後に送信された値を保持し、新しいサブスクライバーにすぐに送信します。
getValue()
現在の値を取得するメソッドもあります。