RxJava:Share
2016-08-27 本文已影响1146人
linheimx
翻译
share 操作符是什么?
Paste_Image.png它使用了 publish 与 refCount 操作符
这两个操作符 使用的太频繁了,所以RxJava将他们组合成了一个操作符:share
所以你还需要知道:publish 与 refCount是什么?
1. publish
publish 将原始的 被观察者 变成为:ConnectedObservable
ConnectedObservable:
当你订阅了 它,它不会发射数据给你的。直到你手动调用 connect方法,它才会开始发射数据给你。
举个例子:她是红楼女子,除非你给她钱(connect),她才会主动为你服务。(好羞耻)
2. refCount
使一个可连接的Observable表现得像一个普通的Observable
试想这种情况:
当你有了多个订阅者,你需要处理每个订阅者的 订阅关系。当他们都不订阅的时候,被观察者才会停止提交对象。
refCount 使这种情况变的很容易处理。
它 记录了订阅者的数量,当每个订阅关系解除了,它会采取正确的行动。