Цепочка Наблюдения, чтобы избежать нескольких подписок

У меня есть некоторые проблемы с цепочкой этих наблюдаемых. У меня есть func1() который выдает исключение при func1() . В onError меня есть func2() который выполняет выборку базы данных и func3() которая сохраняет базу данных путем изменения извлеченного документа. Как я могу связать это, чтобы избежать нескольких подписки?

  Observable.fromCallable { func1() } .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .take(1) .subscribe({ // update success view }, { Observable.fromCallable { func2() } .subscribeOn(Schedulers.io()) .take(1) .subscribe { Observable.fromCallable { func3() } .subscribeOn(Schedulers.io()) .take(1) .subscribe {} } // update failure view }) 

Для продолжения после ошибки вы можете использовать семейство операторов onErrorResumeNext() .
Для продолжения после успеха вы можете использовать семейство операторов flatMap() .

Intereting Posts
Kotlin Generics: Котлин не признает мой класс с правильным наследованием Kotlin lazy свойство в зависимости от другого свойства, инициализированного в init NoClassDefFoundError во время выполнения IllegalStateException в контексте Kotlin не должно быть null Запуск модульных тестов не вызывает изменений MVVM привязывается к Android Как отладить ошибку «Не удалось разрешить ошибку com.google.android:android» в Anko Тестирование приложения Android Kotlin – Mockito с кинжалом вводит нуль Как исправить подпись обобщенного метода расширения в kotlin для разрешения «Ошибка вывода типа» в kotlin Как указать @Throws для свойства в интерфейсе Настройка Kotlin для Gradle без поддержки IDE – классы Kotlin не попадают в classpath Двумерный массив Int в Котлине Закрытое исключение Bt Socket Не удалось проанализировать: org.jetbrains.kotlin.kapt3.diagnostic.KaptError: ошибка при обработке аннотации Учебник Javalin дает «Неразрешенные ссылки: AtomicInteger»