Boo*_*per 7 android rx-java rx-java2
我想知道当我们subscribeOn()在 RxJava 链中有多个方法时会发生什么。例如,如果我有一个像这样的链条,
Single.fromCallable { repository.apiCall1() }
.subscribeOn(Schedulers.io())
.flatMap { result -> Single.fromCallable { repository.apiCall2() } }
.subscribeOn(Schedulers.io())
.map { // do something }
.observeOn(Schedulers.ui())
Run Code Online (Sandbox Code Playgroud)
这是否意味着 API 调用运行的线程不一样?删除subscribeOn(Schedulers.io())上面这个链中的第一个调用会产生什么影响?
感谢您对此的任何见解
看起来不会有任何效果。无论您将其放在subscribeOn链中的哪个位置,都将具有相同的效果。
根据文档,observeOn具有不同的行为,因此您可以更改您\xc2\xb4在链中的任何点观察结果的线程。
来自 Rx 文档:
\n\n\n\n\nSubscribeOn 运算符指定 Observable 将开始在哪个线程上运行,无论该运算符在运算符链中的哪个点被调用。另一方面,ObserveOn 会影响 Observable 将在该运算符出现的下方使用的线程。因此,您可以在 Observable 运算符链中的不同点多次调用 ObserveOn 以便更改其中某些运算符在哪些线程上运行。
\n
http://reactivex.io/documentation/operators/subscribeon.html
\n| 归档时间: |
|
| 查看次数: |
1331 次 |
| 最近记录: |