区分Observables、Subjects、ReplaySubjects、Behavior Subjects?

Differentiate between Observables, Subjects, ReplaySubjects, Behaviour Subjects?

请分享一些 examples/code 片段。我看了代码,但是我的理解不是很清楚。

你可以把它们想象成流。

  • Observable:订阅它获取值
  • Subject:相同,但您还可以控制要 emit 放入其中的值(可以订阅它但也可以发出)
  • ReplaySubject:与主题相同,但会跟踪 N 个最新发出的值,每次您订阅它时,它都会发出这 N 个值
  • BehaviorSubject:必须设置默认值的主题,如果您在发出任何内容之前订阅它,您将获得默认值

Observable 和 Subject:如果你发出一个值并在之后订阅其中一个,你将不会得到最新发出的值,你将不得不等待在您收到通知之前要发出的新值

ReplaySubject和BehaviorSubject:即使你发出一个值然后订阅其中一个,你一订阅就会直接得到最新发出的值。