android中的RxJava2中的subscribe()和subscribeWith()有什么区别?

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

在android中的RxJava2中subscribe()subscribeWith()有什么区别?这两个函数都用于在Observable上订阅Observer。这两个功能有什么主要区别?在哪里使用subscribe以及在哪里使用subscribeWith。如果可能,请提供代码示例。

java android reactive-programming rx-java2
1个回答
4
投票

由于1.x Observable.subscribe(Subscriber)返回Subscription,用户经常将Subscription添加到CompositeSubscription,例如:

CompositeSubscription composite = new CompositeSubscription();

composite.add(Observable.range(1, 5).subscribe(new TestSubscriber<Integer>()));

由于Reactive-Streams规范,Publisher.subscribe返回void,模式本身不再适用于2.0。为了解决这个问题,方法E subscribeWith(E subscriber)已被添加到每个基本反应类中,它按原样返回其输入订户/观察者。以前的两个例子,2.x代码现在看起来像这样,因为ResourceSubscriber直接实现了Disposable

CompositeDisposable composite2 = new CompositeDisposable();

composite2.add(Flowable.range(1, 5).subscribeWith(subscriber));

资料来源:What's different in [RxJava] 2.0

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