RxJava组合操作符
comebineLatest操作符
combineLatest操作符把两个Observable产生的结果进行合并,合并的结果组成一个新的Observable。这两个Observable中任意一个Observable产生的结果,都和另一个Observable最后产生的结果,按照一定的规则进行合并。Observable<Long> observable1 = Observable.timer(0, 1000, TimeUnit.MILLISECONDS) .map(new Func1<Long, Long>() { @Override public Long call(Long aLong) { return aLong * 5; } }).take(5); Observable<Long> observable2 = Observable.timer(500, 1000, TimeUnit.MILLISECONDS) .map(new Func1<Long, Long>() { @Override public Long call(Long aLong) { return aLong * 10; } }).take(5); Observable.combineLatest(observable1, observable2, new Func2<Long, Long, Long>() { @Override public Long call(Long aLong, Long aLong2) { return aLong+aLong2; } }).subscribe(new Subscriber<Long>() { @Override public void onCompleted() { System.out.println("Sequence complete."); } @Override public void onError(Throwable e) { System.err.println("Error: " + e.getMessage()); } @Override public void onNext(Long aLong) { System.out.println("Next: " + aLong); } });
–join操作符
join操作符类似于comebineLatest操作符,也是两个Observable产生的结果进行合并,合并的结果组成一个新的Observable,但是join操作符可以控制每个Observable产生结果的生命周期,在每个结果的生命周期内,可以与另一个Observable产生的结果按照预定的规则进行合并。
Observable observable1 = Observable.timer(0, 1000, TimeUnit.MILLISECONDS)
.map(new Func1