RxJS中Subject与BehaviorSubject的区别?TypeScript示例
大家好!我开始学习Angular和RxJS,对Subject和BehaviorSubject感到困惑。似乎两者都用于创建可发送值的Observable,但我不理解关键区别。
这是我写的示例。当我使用Subject时,在发送值之后订阅的订阅者不会收到该值:
import { Subject } from 'rxjs';
const subject = new Subject<number>();
subject.next(1); // 在订阅前发送值
subject.subscribe({
next: (v) => console.log('Subject订阅者A:', v)
});
subject.next(2); // 在订阅后发送
// 结果:Subject订阅者A: 2
// 值1丢失
而当我使用BehaviorSubject时,稍后订阅的订阅者会收到最后一个值:
import { BehaviorSubject } from 'rxjs';
const behaviorSubject = new BehaviorSubject<number>(0); // 需