【发布时间】:2017-01-13 18:46:06
【问题描述】:
我有点好奇.subscribeOn() 在RxJava 上的实际工作方式。
我有这段代码可以按预期工作:
return endpoints.getRecentConversations(page)
.map().flatMap().doOnNext() //etc etc...
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
我正在阅读this 的文章,试图了解subscribeOn 和observeOn 之间的区别,这句话引起了我的注意:
位置无所谓
subscribeOn可以放在流中的任何位置,因为它会影响 只有订阅时间
这听起来非常好。但我感到有点怀疑,我决定测试它。所以我更改了上面的代码(交换了第 2 行和第 3 行):
return endpoints.getRecentConversations(page)
.subscribeOn(Schedulers.io())
.map().flatMap().doOnNext() //etc etc...
.observeOn(AndroidSchedulers.mainThread())
因此,我的订阅者过早地收到了onComplete()。 onNext() 从未被调用,我的 logcat 中也没有错误。
我可以让事情保持原样,但我想知道为什么会这样。 位置不重要是真的吗?我的代码有问题吗? Here's how my code looks
【问题讨论】:
标签: android rx-java rx-android