RxJS の Subject または Observable の現在の値を取得するにはどうすればいいですか? 質問する

RxJS の Subject または Observable の現在の値を取得するにはどうすればいいですか? 質問する

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()現在の値を取得するメソッドもあります。

おすすめ記事