![]() | RxJavaリアクティブプログラミング (CodeZine BOOKS) 新品価格 |

RxJavaでretryを使ってみた
の続編
最後はmergeの使い方
・全部記載
Flowablemerge1 = Flowable.interval(300L, TimeUnit.MILLISECONDS)
.take(5);
Flowablemerge2 = Flowable.interval(500L, TimeUnit.MILLISECONDS)
.take(2)
.map(new Function() {
@Override
public Long apply(@NonNull Long aLong) throws Exception {
return aLong + 100L;
}
});
Flowableresult = Flowable.merge(merge1, merge2);
result.subscribe(new Subscriber() {
@Override
public void onSubscribe(Subscription s) {
System.out.println("merge onSubscribe");
s.request(Integer.MAX_VALUE);
}
@Override
public void onNext(Long aLong) {
System.out.println("merge onNext:"+aLong);
}
@Override
public void onError(Throwable t) {
}
@Override
public void onComplete() {
System.out.println("merge onComplete");
}
});
・ラムダ
Flowablemerge2 = Flowable.interval(500L, TimeUnit.MILLISECONDS)
.take(2)
.map(data -> data + 100L);
・結果
一つのsubscribeで二つの結果が受け取れるようになった
merge onSubscribe
merge onNext:0
merge onNext:100
merge onNext:1
merge onNext:2
merge onNext:101
merge onNext:3
merge onNext:4
merge onComplete