Rx Java mergeDelayError funktioniert nicht wie erwartet

Ich verwende RxJava in und Android-Anwendung mit RxAndroid. Ich benutze mergeDelayError, um zwei Retrofit-Netzwerkaufrufe zu einer beobachtbaren Funktion zu kombinieren, die ausgestrahlte Elemente verarbeitet, wenn eines davon ausgestrahlt wird, und den Fehler, wenn eines davon vorliegt. Dies funktioniert nicht und löst die Aktion onError nur aus, wenn einer der beiden Fehler auftritt. Um dies zu testen, habe ich mich einem sehr einfachen Beispiel zugewandt und trotzdem wird die successAction nie aufgerufen, wenn ich einen onError-Aufruf habe. Siehe folgendes Beispiel.

Observable.mergeDelayError(
                Observable.error(new RuntimeException()),
                Observable.just("Hello")
            )
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .finallyDo(completeAction)
            .subscribe(successAction, errorAction);

Die Erfolgsaktion wird nur aufgerufen, wenn ich zwei Erfolgsobservablen verwende. Fehlt mir etwas, wie mergeDelayError funktionieren soll?

BEARBEITEN

Ich habe festgestellt, dass, wenn ich das @ entfernobserveOn undsubscribeOn alles funktioniert wie erwartet. Ich muss Threads angeben und dachte, das war der springende Punkt bei der Verwendung von Rx. Jede Idee, warum diese @ angebSchedulers würde das Verhalten brechen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage