通過一個函數將多個Observables的發(fā)射物結合到一起,基于這個函數的結果為每個結合體發(fā)射單個數據項。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/zip.c.png" alt="zip" />
Zip
操作符返回一個Obversable,它使用這個函數按順序結合兩個或多個Observables發(fā)射的數據項,然后它發(fā)射這個函數返回的結果。它按照嚴格的順序應用這個函數。它只發(fā)射與發(fā)射數據項最少的那個Observable一樣多的數據。
RxJava將這個操作符實現為zip
和zipWith
。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/zip.o.png" alt="zip" />
zip
的最后一個參數接受每個Observable發(fā)射的一項數據,返回被壓縮后的數據,它可以接受一到九個參數:一個Observable序列,或者一些發(fā)射Observable的Observables。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/zip.i.png" alt="zip" />
zipWith
操作符總是接受兩個參數,第一個參數是一個Observable或者一個Iterable。
zip
和zipWith
默認不在任何特定的操作符上執(zhí)行。