Я хочу выполнять задачи в RxJava один за другим.
Например: -
1. Получение идентификаторов пользователя с сервера
2. Получить пользователей с сервера по их идентификаторам.
Я пробовал этот метод
public Observable<List> getUids(){
return Observable.create(emitter -> {
List<String> uids = new ArrayList<>();
//fetchData from server
emitter.onNext(uids);
});
}
public Observable<User> getUser(String uid){
return Observable.create(emitter -> {
User user = new User();
//fetchData user from server
emitter.onNext(user);
});
}
//Executing this code like
getUids().flatMapIterable(ids -> ids)
.flatMap(this::getUser)
.subscribe(new Observer<User>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(User user) {
print("next "+user.getName());
}
@Override
public void onError(Throwable e) {
print("error "+e.getMessage());
}
@Override
public void onComplete() {
print("complete");
}
});
В этом есть некоторые проблемы
1. это не вызывает метод onComplete()
подписчика, когда все пользователи выбираются.
2.Если в методе getUser
произошла ошибка, приложение перестало работать. с io.reactivex.exceptions.UndeliverableException
исключением
Подскажите, пожалуйста, где я ошибаюсь?