Diferencia entre doOnSuccess y doOnEach, y en el que caso de uso que debe utilizar cada uno de ellos

melad albahaca

Estoy revisando un archivo de código fuente y se encuentra en ciertos cometen en que se cambió el uso de

    .doOnSuccess(response -> logBodyAsJSON(response ));

Dentro

    .doOnEach(response -> logBodyAsJSON(response ));

No puedo encontrar una razón clara para hacer eso.

Entonces, ¿cuál es la diferencia entre doOnSuccess y doOnEach, y en el que caso de uso que debe utilizar cada uno de ellos?

el médico:

doOnSuccessserá, como su nombre lo indica, sólo puede ser llamado cuando sus rendimientos observables un artículo con éxito y no plantea un error. Como tal, sólo se registrará la respuesta de confirmación.

Además, doOnSuccess trabaja para solteros o Maybes, que sólo puede emitir un solo artículo (que usaría doOnNext lo contrario). Si utiliza un observable que puede emitir varios elementos, tendrá que utilizar doOnNextpara tener el mismo comportamiento exacto.


doOnEachserá llamado si los observables emite un elemento, error o no. Se recibe una notificación en lugar del elemento en sí. Se va a llamar:

  • onSuccess y onError para una sola
  • onNext, onComplete y onError para un observable típico

introducir descripción de la imagen aquí

Es muy probable que el elemento observable cambió de un solo a un observable. Además, no existiría la necesidad de ser capaz de registrar los errores, así como los éxitos, por lo que doOnNextno fue elegido.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=228335&siteId=1
Recomendado
Clasificación