WithLatestFrom.swift:
Merges two observable sequences into one observable sequence by combining each element from self with the latest element from the second source, if any.
withLatestFrom將兩個可觀察序列合併爲一個可觀察序列,當第二個源有新數據的時候,再發送第一個源,會將第二個源的新數據訂閱到。
說白了就是:第一個源數據來的時候,合併第二個源最新的數據,測試代碼:
Observable.interval(1, TimeUnit.SECONDS)
.withLatestFrom(test, new BiFunction<Long, Integer, Integer>() {
@Override
public Integer apply(Long aLong, Integer integer) throws Exception {
return integer;
}
})
// .observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer o) throws Exception {
Log.e("RxTest", "accept " + o);
}
});
test.onNext(1);
輸出:
accept 1
accept 1
accept 1
accept 1
accept 1
……