组合两个发出不同类型的Observable

时间:2015-11-07 12:49:29

标签: java rx-java

我有两个Observable,一个Observable<String>,一个Observable<Boolean>。我可以将它们合并,以便我收到

@Override
public void call(String s, Boolean b) {

}

两个操作何时完成?

1 个答案:

答案 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 + bo1o2项的应用。导致可观察到的屈服"a1", "b2", "c3"

您还可以将Obervable.zipWith与实际实例一起使用以获得相同的效果。

请注意,如果没有要压缩的内容,这将在较短的 observable上终止。