Jul*_* A. 3 observable rx-java
我曾经认为 RxJava 2 的 Flowable 被设计为“热”而 Observable 被设计为“冷”。但我认为现在这是错误的 - Observable 和 Flowable 都是冷的,但可以通过例如将任一可连接变得热。这样对吗?
我认为我们应该逐个定义元素:
冷与热
在Observable冷和热的情况下,我们可以定义冷是指Observable发出与其订阅的相同定义的事件时,例如,Observable.just (1, 2, 3, 4, 5)而热可能是不可能一直完全相同的事件,例如对数据库的查询或通过改造向服务器发出的请求。
然后我们可以将 aFlowable.just (1, 2, 3, 4, 5)或 an定义Observable.just (1, 2, 3, 4, 5)为冷的,在这种情况下,只有很少的元素并且不是一个会连续发送项目的序列,因此将其保持为 Observable 是值得的。
把冷的 想Observable成一张音乐CD,你总是听同样的歌曲和顺序,不管你用了多少次,而热 Observable的就像一个广播电台,你会定期收到不同的信息,也许你订阅了迟到并完成了您想听的广播节目,或者只是不同。
可观察与可流动
现在 anObservable和 a之间的主要区别Flowable是Flowable支持背压,防止信息丢失,以防它不能像接收事件一样快地消耗事件。
https://github.com/ReactiveX/RxJava/wiki/Backpressure-(2.0)
可连接可观察
在这种ConnectableObservable情况下, 执行 后Publisher开始向订阅ConnectableObservable::connect者发送信息,无论可观察的发送者是冷的还是热的。
然后
重要的是确定是否有必要使用 Observable 或 Flowable 并根据它们如何发出它们的值?我们可以称之为冷或热。
下一本书给了我很大的推动:https : //www.amazon.com/Learning-RxJava-Thomas-Nield/dp/1787120422
| 归档时间: |
|
| 查看次数: |
751 次 |
| 最近记录: |