我有一个订阅等待推送通知,另一个正在轮询服务器以获得响应。我想要同时启动两个observable并返回首先完成的数据。在这里使用什么操作员?
答案 0 :(得分:3)
由于你想要完成第一个数据,你必须把数据放到某个地方,直到你到达终端事件,将每个数据收集到自己的列表中并使用amb
选择来源首先发出事件(收集的列表)的信号。然后,您可以将列表展开回单个项目。
Observable<A> source1 = ...
Observable<A> source2 = ...
Observable.amb(source1.toList(), source2.toList())
.flatMapIterable(list -> list)
.subscribe(...);
答案 1 :(得分:0)