java - RxJava do something once 3 distinct events have happend -


i'm trying wrap head around rxjava implementing things pop head. i'm struggling following:

there 3 buttons, each emmiting different events (let's call them a,b, , c)

the subscriber should perform action once receives 3 events (with no regard order or delay between them).

what <> that?

public static void main(string[] args) throws ioexception {     // option 1: merge events stream of 3 events , wait oncompleted     observable.merge(             observebutton1(),             observebutton2(),             observebutton3()     ).subscribe(             event-> system.out.println("button sent event " + event),             throwable::printstacktrace,             ()-> system.out.println("got 3 events")     );     // option 2: zip events stream of 1 event, , react 1 event     observable.zip(             observebutton1(),             observebutton2(),             observebutton3(),             (e1, e2, e3) -> string.join(",", e1, e2, e3)     ).subscribe(             events -> system.out.println("buttons sent events " + events),             throwable::printstacktrace     );       system.in.read();//stop immediate exit  }  private static observable<string> observebutton1(){     return observable.just("a").delay(3, timeunit.seconds); }  private static observable<string> observebutton2(){     return observable.just("b").delay(2, timeunit.seconds); }  private static observable<string> observebutton3(){     return observable.just("c").delay(4, timeunit.seconds); } 

Comments