Avatar ·

¿Cuál es la diferencia entre Subject y BehaviorSubject en RxJS?

¡Hola a todos! Acabo de empezar a aprender RxJS en Angular y me confundí con la diferencia entre Subject y BehaviorSubject. Parece que ambos se usan para crear Observable, pero no entiendo cuándo aplicar cada uno. Tengo un servicio para gestionar el estado del usuario: ```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); } } ``` El problema surge cuando me suscribo a `user$` antes de que se haya llamado a `login()` o `logout()`. El suscriptor simplemente no recibe ningún valor, incluso si el usuario ya inició sesión antes. Tengo que almacenar el estado actual por separado y pasarlo al suscribirme, lo que parece un parche. He oído que BehaviorSubject puede resolver este problema.