ConnectableObservable以一种有趣的方式,协调多个Subscribers共享单个底层的订阅。还记得我们第一次尝试通过LazyTwitterObservable,创建一个到底层数据源的单一的、惰性的连接吗?当第一个订阅者出现或最后一个订阅者出消失时,我们必须手动跟踪所有订阅者并连接/断开连接。ConnectableObservable是一种Observable类型,它确保最多只有一个Subscriber(订阅者)可以连接到它,但实际上,它们中有许多共享相同的底层资源。

有很多ConnectableObservable的应用,例如:确保所有 的Subscriber(订阅者)无论它们什么时候订阅都要接收相同的事件序列。 如果ConnectableObservable产生了重要的副作用,它还可以强制订阅,即使没有“真正的”订阅者来订阅。我们将很快发现所有这些用例。Subject是创建Observable的命令式方法,而ConnectableObservable可以保护上游的Observable并且保证最多只有一个订阅者到达它。不管有多少订阅者连接到ConnectableObservable,它只从它被创建的那个Observable打开一个订阅。

results matching ""

    No results matching ""