区分Observables,Subjects,ReplaySubjects,Behavior Subjects?

时间:2018-05-23 21:36:42

标签: angular rxjs observable web-frontend

请分享一些示例/代码段。我读了代码,但我的理解并不是那么清楚。

1 个答案:

答案 0 :(得分:7)

你可以将它们全部描绘成流。

  • 可观察:订阅以获取值
  • 主题:相同但你也可以控制你想要const primaryId = '123'; // always exactly one const secondaryIds = ['234', '345', '456', '567', '678']; // can be many 进入它的值(可以订阅但也可以发出)
  • ReplaySubject :与主题相同,但会跟踪N个最新发布的值,每次订阅时,它都会发出N个值
  • BehaviorSubject :您必须设置默认值的主题,如果您在发布任何内容之前订阅它,您将获得默认值

可观察和主题:如果您在此之后发出一个值并订阅其中一个,那么您将无法获得最新的值,您将不得不等待一个新值在收到通知之前发出

ReplaySubject和BehaviorSubject :即使您发出一个值然后订阅其中一个,您也会在订阅后直接获取最新的发布值。