¿Cuál es la diferencia entre Subject y BehaviorSubject?
No tengo clara la diferencia entre un Subject y un BehaviorSubject. ¿Es sólo que un BehaviorSubject tiene la función getValue?
191
3
No tengo clara la diferencia entre un Subject y un BehaviorSubject. ¿Es sólo que un BehaviorSubject tiene la función getValue?
Un BehaviorSubject contiene un valor. Cuando se suscribe, emite el valor inmediatamente. Un Subject no contiene ningún valor.
Ejemplo de Subject (con la API RxJS 5):
La salida de la consola estará vacía
Ejemplo de BehaviorSubject:
Salida de la consola: 1
Además:
ComportamientoAsunto
BehaviourSubject devolverá el valor inicial o el valor actual en Subscription
Con salida:
Asunto
Subject no devuelve el valor actual en la suscripción. Sólo se activa cuando se llama a
.next(value)
y devuelve elvalue
.Con la siguiente salida en la consola:
Acabo de crear un proyecto que explica cuál es la diferencia entre todos los temas:
https://github.com/piecioshka/rxjs-subject-vs-behavior-vs-replay-vs-async