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

ANU*_*PTA 3 java android reactive-programming rx-java2

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

Nou*_* Ch 5

由于1.x Observable.subscribe(Subscriber)返回Subscription,因此用户通常将添加Subscription到中CompositeSubscription

CompositeSubscription composite = new CompositeSubscription();

composite.add(Observable.range(1, 5).subscribe(new TestSubscriber<Integer>()));
Run Code Online (Sandbox Code Playgroud)

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

CompositeDisposable composite2 = new CompositeDisposable();

composite2.add(Flowable.range(1, 5).subscribeWith(subscriber));
Run Code Online (Sandbox Code Playgroud)

来源:[RxJava] 2.0有什么不同