我正在学习如何使用RxJava (io.reactivex.rxjava2:rxandroid:2.0.1) + retrofit2 + kotlin。
一般情况下,如何观察到这一点,甚至学会了如何在Observable.zip的帮助下结合基于所有人的性能的2-3个并行查询的结果,但是如何执行类似的3次以上的并行查询,我无法理解。
可观察类的源代码有一个方法
static <T1, T2, T3, T4, R> Observable <R> zip (),但它的工作方式不像
static <T1, T2, T3, R> Observable <R> zip ()在三个可观测输入和Function3 <*, *, *, *>.的情况下
我已经尝试过使用zip、flatMap等进行前三个查询,但仍然无法工作。阅读文档和示例无助于转向正确的方向。我查看了Observable.combineLatest,但是得出了这样的结论(可能是错误的),即该方法将返回执行的第一个可观察到的结果。
我想要的:
我有4种返回可观察的方法:
提示符,请,我应该如何组合这些方法,使它们并行运行,并最终在一个地方获得所有4个方法的结果?
它已经搞砸了,但我通常不明白我应该如何处理这4个可观察到的,以便它们都在一个地方,然后返回到UI。已经和flatMap,地图等混淆了.
请原谅我的错误
发布于 2018-08-18 11:21:30
您需要的是zip,可能您遇到的问题是,zip只在所有可观察到的发出时才会发出。
如果您需要在得到更新后立即收到更新,我认为最好的方法是将答案映射到一个常见类型,例如:
class Response(val statuses: Statuses? = null, val orders: Orders? = null, val users: Users? = null, val types: Types? = null)
this.orderRepository.getStatuses().map(Response(statuses = it))在对所有可观察到的对象执行此操作之后,您将能够使用concat或merge,后者将在任何可观察的发射时立即发出。
更多信息:
https://stackoverflow.com/questions/51907892
复制相似问题