Допустим, я хочу показать некоторые пользовательские данные, которые находятся на сервере. Я бы искал сервер, кэшировал его, а затем представлял пользователю. Итак, мой исходный код RxJava будет выглядеть примерно так:
ApiClient.getUser(userId), //An Observable that will spit out a UserResponse
.subscribeOn(Schedulers.io()) //for the API observable (Do i need this?)
.flatMap(new Func1<UserResponse, Observable<DatabasePutResult>>() {
@Override
public Observable<DatabasePutResult> call(UserResponse response) {
return Database.cacheUser(response);
}
})
.subscribeOn(Schedulers.io()) //for the database observable
.observeOn(AndroidSchedulers.mainThread())
.subscribe(//handle DatabasePutResult object in onNext());
Теперь у меня есть два вопроса.
- Это правильный способ связать два Observables? Если нет, то как мне быть?
- Если бы я хотел обработать
onError
для Api Observable, смог бы я как-то это сделать, поддерживая цепочку? Если нет, то как лучше всего это сделать? Мне действительно нужно разделить цепочку на два набора вызовов RxJava?