Avatar ·

Quelle est la différence entre Subject et BehaviorSubject dans RxJS ?

Bonjour à tous ! Je viens de commencer à apprendre RxJS dans Angular et je suis confus quant à la différence entre Subject et BehaviorSubject. Ils semblent tous deux utilisés pour créer des Observable, mais je ne comprends pas quand utiliser l'un ou l'autre. J'ai un service pour gérer l'état de l'utilisateur : ```typescript import { Injectable } from '@angular/core'; import { Subject } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class UserService { private userSubject = new Subject(); user$ = this.userSubject.asObservable(); login(user: User) { this.userSubject.next(user); } logout() { this.userSubject.next(null); } } ``` Le problème survient lorsque je m'abonne à `user$` avant que `login()` ou `logout()` ne soient appelés. L'abonné ne reçoit simplement aucune valeur, même si l'utilisateur s'est déjà connecté auparavant. Je dois stocker l'état actuel séparément et le transmettre lors de l'abonnement, ce qui semble être une solution de fortune. J'ai entendu dire que BehaviorSubject pourrait résoudre ce problème.