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
Post a Comment