There are three parallel polling events, polled every 200 milliseconds, and when one of the polls reaches the result, the three polling events stop, or stop after timeout 2s,How to achieve it using rxjava
var e1 = Observable.interval(200, TimeUnit.MICROSECONDS)
.subscribeOn(new IoScheduler())
.map((s) -> EEventType.EVENT_1)
.filter(s -> s != EEventType.NONE);
var e2 = Observable.interval(200, TimeUnit.MICROSECONDS)
.subscribeOn(new IoScheduler())
.map((s) -> EEventType.NONE)
.filter(s -> s != EEventType.NONE);
var e3 = Observable.interval(200, TimeUnit.MICROSECONDS)
.subscribeOn(new IoScheduler())
.map((s) -> EEventType.NONE)
.filter(s -> s != EEventType.NONE);
Observable.merge(e1, e2, e3)
.timeout(2000, TimeUnit.MICROSECONDS)
.subscribe(System.out::println, Throwable::printStackTrace);