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の現在の値を取得する必要があるだけです。これどうやってするの?
A Subject
またはObservable
現在の値を持っていません。値が発行されると、サブスクライバーに渡され、それで処理さObservable
れます。
現在の値が必要な場合BehaviorSubject
は、まさにその目的のために設計されたものを使用してください。BehaviorSubject
最後に発行された値を保持し、すぐに新しいサブスクライバーに発行します。
getValue()
現在の値を取得するメソッドもあります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加