Identify emitting observable in RxJava

bavaza

I have an array of Observable, each potentially producing the same elements. Then, I use flatMap() to merge all of the observables, and subscribe to the resulting Observable:

Observable<Integer> o1 = Observable.range(0, 5);
Observable<Integer> o2 = Observable.range(0, 5);
Observable<Integer> o3 = Observable.range(0, 5);
        
Observable.fromArray(o1, o2, o3)
     .flatMap(o -> o)    // merge outputs from all observables
     .subscribe(item -> Log.i(TAG, "Item: " + item + " Observable id: ???"));

How do I need to change the code so I can determine which Observable emitted each item in the subscribe() clause?

L Lawliet

How about:

Observable<Item> o1 = Observable.range(0, 5).map(i -> new Item(i, "o1"));
Observable<Item> o2 = Observable.range(0, 5).map(i -> new Item(i, "o2"));
Observable<Item> o3 = Observable.range(0, 5).map(i -> new Item(i, "o3"));

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related