I am pretty new to RxJava
I have an Observable
private static rx.Observable<List<item>> getList() {
return rx.Observable.fromCallable(() -> {
call some internal methods
return list;
});
}
I have a caller method
public static void getListFromObservable() {
getList().subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe( new Subscriber<List<item>>() {
@Override
public void onCompleted() {}
@Override
public void onError(Throwable error) {}
@Override
public void onNext(List<item> i) {
for (item each : i) {
getSubdetails(each)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Boolean>() {
@Override
public void onCompleted() {}
@Override
public void onError(Throwable error) { }
@Override
public void onNext(Boolean aBoolean) {}
});
}
This is another observable
private static rx.Observable<Boolean>> getSubdetails(item i) {
return rx.Observable.fromCallable(() -> {
call some internal methods
return true;
});
}
I do not want to use foreach in the OnNext, but I want to use Map or FlatMaps. Can someone help me on how to do this?
For example:
getList()
.subscribeOn(Schedulers.io())
.flatMapIterable(list -> list)
.flatMap(each -> getSubdetails(each))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(/* ... */);