我有两个Observable,一个Observable<String>
,一个Observable<Boolean>
。我可以将它们合并,以便我收到
@Override
public void call(String s, Boolean b) {
}
两个操作何时完成?
答案 0 :(得分:13)
如果您想等待从两个可观察对象发出的项目(同步它们),您通常需要类似Observable.zip
的内容:
Observable<String> o1 = Observable.just("a", "b", "c");
Observable<Integer> o2 = Observable.just(1, 2, 3);
Observable<String> result = Observable.zip(o1, o2, (a, b) -> a + b);
result
将会产生(a, b) -> a + b
到o1
和o2
项的应用。导致可观察到的屈服"a1", "b2", "c3"
。
您还可以将Obervable.zipWith
与实际实例一起使用以获得相同的效果。
请注意,如果没有要压缩的内容,这将在较短的 observable上终止。