我们介绍了RxJs科目几周后回来。
BehaviorSubject
最常见的主题使用角BehaviorSubject
。这是为什么呢?因为一个BehaviorSubject
有两个令人兴奋的特性,一个普通的主题
没有:
- 它始于一个默认值,这意味着它永远不会空的。
- 当我们订阅一个行为主体,它将立即给我们最后一个排放值。
想象订阅杂志和接收其最新出版的问题。这是一个BehaviorSubject
所做的事。这是有用的,如果你有需要了解应用程序的组件的当前用户。当组件订阅“当前用户”,我们希望立即得到信息,而不是等到下一个用户更新。

而且,由于行为主体总是有一个值,他们有一个getValue (
同步)方法返回当前值。
ReplaySubject
一个ReplaySubject
非常类似于BehaviorSubject
,有两个关键的区别:
- 没有默认值
- 不仅仅可以重播最后一个值
构造函数参数确定多少值应该重播新用户:

主题
一个普通的主题
没有上面的功能。发出一个值时,当前用户收到它,但是未来的用户不会。没有重演的最新值(s),这使得普通科目不太有趣。