2017年12月13日

RxJavaでmergeを使ってみた

RxJavaリアクティブプログラミング (CodeZine BOOKS)

新品価格
¥3,888から
(2017/12/13 23:18時点)



RxJavaでretryを使ってみた
の続編

最後はmergeの使い方

・全部記載

Flowable merge1 = Flowable.interval(300L, TimeUnit.MILLISECONDS)
.take(5);
Flowable merge2 = Flowable.interval(500L, TimeUnit.MILLISECONDS)
.take(2)
.map(new Function() {
@Override
public Long apply(@NonNull Long aLong) throws Exception {
return aLong + 100L;
}
});

Flowable result = 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");
}
});



・ラムダ

Flowable merge2 = 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
タグ:java OSS android
posted by マスタカ at 23:19 | Comment(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。