package com.github.benjchristensen.gist;
import java.util.concurrent.TimeUnit;
import rx.Observable;
public class MergeUntilComplete {
public static void main(String[] args) {
Observable<String> t1 = Observable.timer(0, 100, TimeUnit.MILLISECONDS).map(i -> "A-" + i);
Observable<String> t2 = Observable.timer(0, 300, TimeUnit.MILLISECONDS).take(5).map(i -> "B-" + i);
Observable.merge(t1.materialize(), t2.materialize()).takeWhile(n -> n.isOnNext())
.dematerialize().toBlocking().forEach(System.out::println);
}
}