首页 > 解决方案 > RxJava2如何将2个单列表加入一个列表

问题描述

我有 2 个不同的数据源要组合。

val source1: Single<List<Type1>> = Single.fromCallable({
    api.getSource1()
})!!

val source2: Single<List<Type2>> = Single.fromCallable({
    api.getSource2()
})!!

//PS.
class Type0()
class Type1 : Type0()
class Type2 : Type0()

我想加入 2 个来源并获得

Single<List<Type0>> 

所以我可以对数据进行进一步处理,我认为我应该使用 .zip 方法,但我不确定如何正确执行。

标签: kotlinrx-java2

解决方案


运算符在zipWith这里工作得很好,因为它允许您提供BiFunction描述如何组合两个Single实例的 a (在这种情况下,我们只是将它们与plusoperator连接起来):

val zipped: Single<List<Type0>> = source1.zipWith(source2, BiFunction { l1, l2 -> l1 + l2 })

推荐阅读