Rx Java mergeDelayError не работает должным образом
Я использую RxJava и приложение для Android с RxAndroid. я используюmergeDelayError объединить два ретроспективных сетевых вызова в одну наблюдаемую, которая будет обрабатывать испущенные элементы, если один из них испускает один, и ошибку, если у одного есть такой Это не работает, и оно только запускает действие onError, когда любой из них сталкивается с ошибкой. Теперь, чтобы проверить это, я переключился на очень простой пример, и все же successAction никогда не вызывается, когда у меня есть вызов onError. Смотрите пример ниже.
Observable.mergeDelayError(
Observable.error(new RuntimeException()),
Observable.just("Hello")
)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.finallyDo(completeAction)
.subscribe(successAction, errorAction);
Действие успеха будет вызвано, только если я использую две наблюдаемые успеха. Я что-то упустил из-за того, как mergeDelayError должен работать?
РЕДАКТИРОВАТЬ:
Я обнаружил, что если я удалюobserveOn
а такжеsubscribeOn
все работает как положено. Мне нужно указать нити и подумать, что в этом весь смысл использования Rx. Любая идея, зачем указывать теSchedulers
нарушит поведение?