我有一个Observer对象,该对象已在Observable上订阅。Observable对数据库执行SQL查询,获取多个结果,然后执行
.forEach(...)
现在,我需要添加第二个SQL查询以用更多数据填充该对象。这次结果只是一个特定值。我看到有一个zip函数,但是它根据文档进行一对一的配对。我需要构造看起来像这样的对象:
MyObject{
int i;
List<AnotherObject>;
}
您可以在第一个查询返回的toList()
上使用Observable
,将其转换为Single<List>
。然后,您可以使用zipWith
将其与第二个查询的结果结合起来,由于只发出一项,因此可以使它返回Single
。
query1() // Returns Observable<AnotherObject>
.toList() // Gives you Single<List<AnotherObject>>
.zipWith(query2(), (result1, result2) -> new MyObject(result1, result2)))
...