试试这个
Observable<String> observable = Observable.just("hello", "are", "doing");
Observable<String> observable2 = Observable.just("how", "you", "today");
observable.zipWith(observable2, new BiFunction<String, String, String>() {
@Override
public String apply(String s, String s2) throws Exception {
return s+" "+s2;
}
}).reduce(new BiFunction<String, String, String>() {
@Override
public String apply(String s, String s2) throws Exception {
return s+ " " + s2;
}
}).subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
System.out.println(s); // this will emit with "hello how are you doing today"
}
});
如果您使用的是Java8,那么可以使用lambda减少相同的代码,如下所示
observable.zipWith(observable2, (s, s2) -> s + " " + s2)
.reduce((s, s2) -> s +" "+ s2).subscribe(System.out::println);