问题描述
我有一个Observable数组,每个数组都可能产生相同的元素。然后,我使用flatMap()
合并所有可观察对象,并订阅得到的可观察对象:
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: ???"));
我该如何更改代码,以便确定在subscribe()
子句中,哪个Observable发出了每个项目?
解决方法
怎么样:
Observable<Item> o1 = Observable.range(0,5).map(i -> new Item(i,"o1"));
Observable<Item> o2 = Observable.range(0,"o2"));
Observable<Item> o3 = Observable.range(0,"o3"));