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
……