Rx Java mergeDelayError no funciona como se esperaba
Estoy usando RxJava en y la aplicación de Android con RxAndroid. Estoy usandomergeDelayError combinar dos llamadas de red de ajuste retro en un observable que procesará los elementos emitidos si alguno emite uno y el error si alguno tiene uno. Esto no funciona y solo está activando la acción onError cuando cualquiera encuentra un error. Ahora, para probar esto, cambié a un ejemplo muy simple y todavía no se llama a successAction cuando tengo una llamada onError. Ver ejemplo a continuación.
Observable.mergeDelayError(
Observable.error(new RuntimeException()),
Observable.just("Hello")
)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.finallyDo(completeAction)
.subscribe(successAction, errorAction);
La acción de éxito solo se llamará si utilizo dos observables de éxito. ¿Me estoy perdiendo algo sobre cómo se supone que funciona mergeDelayError?
EDITAR:
He descubierto que si elimino elobserveOn
ysubscribeOn
Todo funciona como se esperaba. Necesito especificar hilos y pensé que ese era el objetivo de usar Rx. Alguna idea de por qué especificar esosSchedulers
rompería el comportamiento?