Saltar al contenido

RxJava 2.x: ¿Debo usar Flowable o Single/Completable?

Hola, descubrimos la solución a lo que necesitas, has scroll y la verás más abajo.

Solución:

La contrapresión es lo que se obtiene cuando una fuente Observable está emitiendo elementos más rápido que un Subscriber los puede consumir. Es más a menudo una preocupación con caliente observables, no frío otros como sus solicitudes de red.

Creo que deberías usar Completable en lugar de Observable en tus saveUser método y uso Single para todos los lugares donde sigue un patrón de solicitud/respuesta o de entrada/salida. Observable debe usarse cuando realmente desea un flujo continuo de eventos.

La contrapresión ocurre cuando un Observable está emitiendo artículos más rápidamente de lo que un operador o suscriptor puede consumirlos.

Sabiendo eso, la contrapresión no es un problema en su caso ya que su Observable emitirá solo un elemento, por lo que Flowable no es un buen candidato.

Así que la verdadera pregunta es si usar Completable o Observable por saveUser y Single o Observable por findUser y aquí como solo se espera un resultado (éxito o fracaso) en aras de la simplicidad y claridad de su API, definitivamente debe usar Completable/Single de lo contrario, será difícil comprender que solo se emitirá un valor, lo que podría inducir a error a los usuarios de la API.

La cardinalidad es una forma de entender las diferencias entre Completable, Quizás y Único:

  • A Maybe es solo un Observable con cardinalidad 0 o 1, es decir, representa un resultado que puede estar presente o no.
  • A Single es un Observable que siempre devuelve un resultado, es decir, una cardinalidad de 1.
  • A Completable puede interpretarse como una especie de Observable es decir, una cardinalidad de 0.

Entonces en tu caso puedes cambiar la firma del repositorio de esta manera:

Completable saveUser(...);

Single findUser(...);

(No mencioné Flowables que son como Observables con contrapresión).

Si te gustó nuestro trabajo, tienes la opción de dejar un tutorial acerca de qué te ha impresionado de este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *