Avatar ·

Was ist der Unterschied zwischen Subject und BehaviorSubject in RxJS? Beispiele in TypeScript

Hallo zusammen! Ich habe angefangen, Angular und RxJS zu lernen, und bin verwirrt über Subject und BehaviorSubject. Anscheinend werden beide verwendet, um Observable mit der Möglichkeit zum Senden von Werten zu erstellen, aber ich verstehe den entscheidenden Unterschied nicht.

Hier ist ein Beispiel, das ich geschrieben habe. Wenn ich Subject verwende, erhalten Abonnenten, die sich nach dem Senden eines Werts anmelden, diesen Wert nicht:

import { Subject } from 'rxjs';

const subject = new Subject<number>();

subject.next(1); // Senden eines Werts vor der Subscription

subject.subscribe({
  next: (v) => console.log('Subject Abonnent A:', v)
});

subject.next(2); // Senden nach der Subscription
// Ergebnis: Subject Abonnent A: 2
// Wert 1 wurde verloren

Wenn ich jedoch BehaviorSubject verwende...