RxJava 2 Flowable是热还是冷?

问题描述 投票:0回答:1

我曾经认为RxJava 2的Flowable设计为“热”和可观察的“冷”。但是我认为现在是错的-Observable和Flowable都很冷但是可以变热,例如通过使任一可连接。这是正确的吗?

observable rx-java flowable
1个回答
0
投票

我认为我们应该逐个元素地定义:

冷对热

[对于Observable冷热情况,我们可以定义为冷是指Observable发出与订阅的事件相同的定义事件,例如Observable.just (1, 2, 3, 4, 5),而热可能是不完全相同的事件始终保持相同,例如对数据库的查询结果或通过改造对服务器的请求的结果。

然后,我们可以将Flowable.just (1, 2, 3, 4, 5)Observable.just (1, 2, 3, 4, 5)定义为冷,在这种情况下,元素很少,并且不是连续发送项目的序列,因此值得将其保持为可观察。

想想cold Observable作为音乐CD,无论您使用它多少次,您总是会以相同的顺序收听相同的歌曲,而hot Observable就像广播电台一样,您会定期收到不同的信息,也许您订阅得晚了,并结束了您想收听的广播节目,或者只是有所不同。

可观察与可流动

现在ObservableFlowable之间的主要区别在于Flowable支持背压,以防信息丢失,以防无法像接收事件一样快地消耗事件。

https://github.com/ReactiveX/RxJava/wiki/Backpressure-(2.0)

ConnectableObservable

ConnectableObservable情况下,Publisher在执行ConnectableObservable::connect后开始向订户发送信息,而不管可观察的发送者是冷还是热。

然后

重要的是确定是否有必要使用Observable或Flowable,并根据它们如何发出它们的值,我们可以称其为冷或热。

下一本书给了我很大的推动力:https://www.amazon.com/Learning-RxJava-Thomas-Nield/dp/1787120422

© www.soinside.com 2019 - 2024. All rights reserved.