默认情况下所有 Rx Observable 都是冷的吗?
默认,除受试者外,所有 Rx 可观察量都是冷的。这意味着它们只有在至少有一个观察者订阅时才会发出值。
Rx 运算符将冷 Observables 变成热 Observables
有两个主要运算符可以将冷 observable 转换为热 observable:
withLatestFrom 运算符和 Cold Observables
withLatestFrom不会改变可观察到的冷度或热度。在您的示例中:
Rx.fromEvent 和热/冷行为
您在CodePen 示例是因为该事件仅在单击元素时发出,而不是在订阅 Rx.fromEvent 可观察对象时发出。因此,对 observable 的每个订阅都会收到不同的事件。
冷 Observable 的简化流程图
为了说明冷 observable 的简化数据流:
Source -> Observer1 -> Observer2
Hot Observables 的简化流程图
对于 Hot Observables,流程是:
Source -> Subject -> Observer1 -> Observer2
主体充当中心枢纽,将传入数据多播给所有订阅的观察者。
多播运算符(发布/共享)
多播运算符在内部创建一个主题并返回一个可连接的可观察对象。当 observable 连接时,主体订阅上游 observable 并向所有订阅的观察者组播数据。
使用运算符时考虑数据流
理解数据流经营者的行为至关重要。即使可观察量是热的,考虑后续运算符如何影响其热或冷行为也很重要。
以上是Rx Observables 默认是冷的吗? 了解“发布”和“共享”的数据流的详细内容。更多信息请关注PHP中文网其他相关文章!