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 нарушит поведение?

Ответы на вопрос(3)

Ваш ответ на вопрос