Combining Observables(組合Observable)
1、Zip
通過一個函數將多個Observables的發射物結合到一起,基於這個函數的結果爲每個結合體發 射單個數據項。
Zip 操作符返回一個Obversable,它使用這個函數按順序結合兩個或多個Observables發射 的數據項,然後它發射這個函數返回的結果。它按照嚴格的順序應用這個函數。它只發射與 發射數據項最少的那個Observable一樣多的數據
private static void zip() {
Observable.zip(Observable.just(1, 2, 3), Observable.just("a", "b", "c", "d"), new Func2<Integer, String,
String>() {
@Override
public String call(Integer integer, String s) {
return s + integer;
}
}).subscribe(new Action1<String>() {
@Override
public void call(String s) {
System.out.println(s);
}
});
}
運行結果:
a1
b2
c3
2、Merge
合併多個Observables的發射物, Merge 可能會讓合併的Observables發射的數據交錯(有一個類似的操作符 Concat 不會讓數 據交錯,它會按順序一個接着一個發射多個Observables的發射物
3、StartWith
4、CombineLatest
5、Join
6、SwitchOnNext