默认情况下所有 Rx Observable 都是冷的吗?
默认,除受试者外,所有 Rx 可观察量都是冷的。这意味着它们只有在至少有一个观察者订阅时才会发出值。
Rx 运算符将冷 Observables 转换为 Hot Observables
有两个主要运算符可以将冷可观察量转换为热可观察量:
withLatestFrom 运算符和 Cold Observables
withLatestFrom 不会改变冷度或热度的一个可观察的。在你的例子中:
Rx.fromEvent 和 Hot/Cold行为
您在 CodePen 示例中观察到的差异是由于事件仅在单击元素时发出,而不是在订阅 Rx.fromEvent 可观察值时发出。因此,对可观察量的每个订阅都会收到不同的事件。
冷可观察量的简化流程图
为了说明冷可观察量的简化数据流:
Source -> Observer1 -> Observer2
Hot 的简化流程图Observables
对于hot observables,流程为:
Source -> Subject -> Observer1 -> Observer2
Subject充当中央集线器,组播传入向所有订阅的观察者发送数据。
多播运算符(发布/共享)
多播运算符在内部创建一个主题并返回一个可连接的可观察量。当 observable 连接时,主体订阅上游 observable 并向所有订阅的观察者多播数据。
使用运算符时考虑数据流
理解数据流经营者的行为至关重要。即使可观察量是热的,考虑后续运算符如何影响其热或冷行为也很重要。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3