【发布时间】:2019-01-25 05:37:37
【问题描述】:
我正在尝试学习如何使用 RxJava (io.reactivex.rxjava2:rxandroid:2.0.1) + retrofit2 + kotlin。
Observable 是如何参与其中的,总的来说,想通了,甚至在Observable.zip 的帮助下,学会了如何根据所有人的性能组合 2-3 个并行查询的结果,但如何执行类似的多于3 个我无法理解的并行查询。
Observable 类的源码有一个方法
static <T1, T2, T3, T4, R> Observable <R> zip (),
但它并不像
static <T1, T2, T3, R> Observable <R> zip ()
在三个 Observable 输入和Function3 <*, *, *, *>.的情况下
我已经尝试使用zip 进行前三个查询,然后使用flatMap 等等,但它仍然不起作用。阅读文档和示例无助于转向正确的方向。我查看了Observable.combineLatest,但得出的结论(可能是错误的)该方法将返回执行的第一个 Observable 的结果。
我想要什么:
我有 4 个返回 Observable 的方法:
- this.orderRepository.getStatuses(): 可观察的
- this.orderRepository.getOrders(): 可观察的
- this.userRepository.getUsers(): 可观察的
- this.orderRepository.getTypes(): 可观察的
请提示,我应该如何组合这些方法,以便它们并行运行,最后将所有 4 个方法的结果集中在一个地方?
它已经搞砸了,但我通常不明白我应该如何处理 4 个 Observable,以便它们都在一个地方并返回 UI。 + 已经与 flatMap、map 等混淆了...
如有错误请见谅
【问题讨论】:
-
目前还不清楚是什么问题。对于 4 个来源,您需要 Function4:github.com/ReactiveX/RxJava/blob/2.x/src/test/java/io/reactivex/…
标签: android kotlin rx-java retrofit2 reactivex