为什么 RX 中有这么多 Subject 对象?

Why are so many Subject objects in RX?

您能否澄清以下几点 —— 为什么

  1. 主题
  2. 行为主题
  3. 重播主题

一起存在?

什么时候只有带buffer参数的Subject就够了? 毕竟,只有这一点(发出最后数量)它们不同。

可能是:(参数是缓冲区大小)

什么原因?

1) Subject 甚至没有价值。 订阅者不会看到订阅前发出的所有值。

2) BehaviorSubject 持有最后一个值并且必须持有一个值。 订阅者将始终获得最后发出的值。

3) ReplaySubject 持有 x 值,但不是必须的。 如果之前发出,订阅者将获得最后的 x 值。否则他们将得到 0 - x 值。

它们是不同的,不能在不丢失功能的情况下相互更改。