Qual a diferença entre Subject e BehaviorSubject no RxJS? Exemplos em TypeScript
Olá a todos! Comecei a estudar Angular e RxJS, e fiquei confuso com Subject e BehaviorSubject. Ambos parecem ser usados para criar Observable com a capacidade de enviar valores, mas não entendo qual é a diferença chave.
Aqui está um exemplo que escrevi. Quando uso Subject, os subscribers que se inscrevem após o envio do valor não recebem esse valor:
import { Subject } from 'rxjs';
const subject = new Subject<number>();
subject.next(1); // Envia o valor antes da inscrição
subject.subscribe({
next: (v) => console.log('Subject subscriber A:', v)
});
subject.next(2); // Envia após a inscrição
// Resultado: Subject subscriber A: 2
// Valor 1 perdido
E quando uso BehaviorSubject, os subscribers que se inscrevem mais tarde recebem o último valor:
import { BehaviorSubject } from 'rxjs';
const behaviorSubject = new BehaviorSubject<number>(0); // V No answers yet.
Faça login para deixar uma resposta