1. ホーム
  2. angular

[解決済み] SubjectとBehaviorSubjectの違いは何ですか?

2022-03-16 20:18:42

質問

の違いがよくわかりません。 SubjectBehaviorSubject . ただ単に BehaviorSubject には getValue() という機能があるのでしょうか?

どのように解決するのですか?

BehaviorSubjectは1つの値を保持します。サブスクライブされると、その値をすぐに発行します。Subjectは値を持ちません。

サブジェクトの例(RxJS 5のAPIを使用)。

const subject = new Rx.Subject();
subject.next(1);
subject.subscribe(x => console.log(x));

コンソール出力は空になります

BehaviorSubjectの例です。

const subject = new Rx.BehaviorSubject(0);
subject.next(1);
subject.subscribe(x => console.log(x));

コンソール出力です。1

さらに

  • BehaviorSubject は初期値で作成する必要があります。 Rx.BehaviorSubject(1)
  • 検討する ReplaySubject サブジェクトに複数の値を保持させたい場合