RX Java将可观察变量与一对多关系结合起来

问题描述 投票:0回答:1

我有一个Observer对象,该对象已在Observable上订阅。Observable对数据库执行SQL查询,获取多个结果,然后执行

    .forEach(...)

现在,我需要添加第二个SQL查询以用更多数据填充该对象。这次结果只是一个特定值。我看到有一个zip函数,但是它根据文档进行一对一的配对。我需要构造看起来像这样的对象:

    MyObject{
        int i;
        List<AnotherObject>;
    }
java rx-java reactive-programming rx-java2
1个回答
0
投票

您可以在第一个查询返回的toList()上使用Observable,将其转换为Single<List>。然后,您可以使用zipWith将其与第二个查询的结果结合起来,由于只发出一项,因此可以使它返回Single

query1() // Returns Observable<AnotherObject>
  .toList()  // Gives you Single<List<AnotherObject>>
  .zipWith(query2(), (result1, result2) -> new MyObject(result1, result2)))
  ...
© www.soinside.com 2019 - 2024. All rights reserved.