ResourceSubscriber的添加方法的用例是什么?

时间:2016-10-11 17:48:58

标签: rx-java

我无法弄清楚ResourceSubscriber的add(Disposable)方法的用例。

我认为可以使用add(Disposable)方法处理多个一次性用品。

但是,如果我想要一起处理一些订阅, 我将使用CompositeSubscription并从subscribeWith方法的返回值添加Disposables。 而且,我猜这种方式更容易阅读。

另外,我认为,当主要的可流动装置完成后,附加的可流动装置可能会自动处理,因为完成的可流动装置可能会像处理好的可流动装置一样。 所以,我试过了。

Flowable<Long> f1 = Flowable.interval(100L, TimeUnit.MILLISECONDS).take(3);
Flowable<Long> f2 = Flowable.interval(200L, TimeUnit.MILLISECONDS);

ResourceSubscriber<Long> s = new ResourceSubscriber<Long>() {
  ...
};

s.add(f2.subscribeWith(new DisposableSubscriber<Long>() {
  ...
}));

f1.subscribe(s);

但是,f2f1完成后仍然有效。 f2未被处置。

现在,我想知道ResourceSubscriber的add(Disposable)方法的好用例是什么。

1 个答案:

答案 0 :(得分:1)

ResourceSubscriber允许您注册Disposable资源,类似于1.x Subscriber允许的资源,并且可以简化从1.x到2.x的过渡。但是,它只跟踪资源,您必须在disposeonError实施中手动调用onComplete来处置这些资源。