RxJava合并/合并对象与列表

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

我有2个可观察值,一个返回1个元素,另一个返回多个元素。我的目标是将它们合并在一起,无阻塞,以建立这样的对象:

class Combined {
    Server server;
    List<Client> client;
}

Observable<Server> server = getServerById("1"); //returns an observable of 1 server
Observable<Client> clients = getClientsByServerId("1"); //returns an observable of 0 to n clients

Observable<Combined> combined = //...

我尝试过zip,合并和合并,似乎都不是解决方案。

rx-java
1个回答
0
投票

[zip应该可以,只要getClientsByServerId是有限的:

Single<Combined> = Single.zip(
    server.singleOrError(),
    clients.toList(),
    (svr, list) -> new Combined(svr, list)
)
© www.soinside.com 2019 - 2024. All rights reserved.