hot and cold observable

A “hot” Observable may begin emitting items as soon as it is created, and so any observer who later subscribes to that Observable may start observing the sequence somewhere in the middle. A “cold” Observable, on the other hand, waits until an observer subscribes to it before it begins to emit items, and so such an observer is guaranteed to see the whole sequence from the beginning.官网上的解释已经比较详细了,简单点说区别就是cold会等到有observer监听之后,才会发出事件,而hot则可能随时发出事件,不顾是否有observer监听了这个observable。

这是observable继承关系的类图,cold observable属于ordinary observable,也就是图中的observable类,而hot observable则属于ConnectableObservable,值得注意的是在ConnectableObservable有一个有趣的函数connect函数,方法签名如下:

从方法的注解可以了解,这就是hot和cold observable的区别所在,还有一点值得注意的就是类图中的Subject,Subject在RX中属于既是observable又是observer,具有双面性



上图是ConnectableObservable的注解,示意图搞得让人有点不理解,图中publish函数就是把一个cold observable转换成hot observable的函数(系统提供的api)
参看文献:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值