RxJava Break Chain en Condicional

Estoy creando una secuencia observable y estoy básicamente buscando una buena manera de romper la cadena si una condición no se cumple. Idealmente podríamos a través de un error en este escenario. Esto es básicamente para eliminar una instrucción if / else en un operador de mapa plano. Esto es algo como lo he hecho ahora

flatMap(new Func1<User, Observable<Response>>() { @Override public Observable<Response> call(Result result) { if(isValid(result))) { return api.getObservableResponse(); //some retrofit observable } else { observer.onError(); return null; //??? I guess this would force an error } } }) 

He visto operadores como filter () y todos los otros condicionales, pero no estoy seguro si alguno de ellos cumple mis requisitos. ¿Hay una mejor manera de hacer esto? ¿O es lo que tengo buen aspecto? ¡Gracias!

¿Qué tal usar takeWhile – docs ?

 Observable<T> whatever = ... Observable<T> untilConditionMet = whatever .takeWhile(this::isValid) // modify according wherever isValid comes from .flatMap(r -> api.getObservableResponse()); // only doing this until isValid 
  • Proguard y RxAndroid V1.1.0
  • RxAndroidBle mantener una conexión persistente + Manejo de escritura / notificación
  • RxJava- validación de formulario RxAndroid en dynamic EditText
  • RxJava como autobús de eventos?
  • Android retofit + rxjava cómo procesar el parámetro de petición dinámica con repeatwhen
  • ¿Qué es RxJava equivalente de orElse
  • RXJava - hacer un observable pausable (con buffer y ventana, por ejemplo)
  • Encadenamiento de servicios de Retrofit con soporte de RxJava
  • Uso de "skipWhile" combinado con "repeatWhen" en RxJava para implementar el sondeo de servidor
  • Kotlin: ¿Qué significa "return @"?
  • Schedulers.immediate () no funciona con las pruebas de gradle de la línea de comandos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.