schedulers - RxJava: diferencia entre doOnNext y doOnEach
schedulers rxjava (1)
¿En qué casos debería usar doOnNext y en qué casos doOnEach?
.doOnEach(new Action1<Notification<? super MessageProfile>>() {
@Override
public void call(Notification<? super MessageProfile> notification) {
}
})
.doOnNext(new Action1<MessageProfile>() {
@Override
public void call(MessageProfile profile) {
messageProfileDao.save(profile);
}
})
Esto parece que los dos operadores tienen el mismo efecto.
De hecho, están bastante cerca. Una cosa que difiere (y tal vez no esté tan claro en el javadoc, más visible en el código fuente) es que en doOnEach, también recibe envoltorios de Notification
para errores y eventos de finalización.
Luego puede verificar isOnNext
, isOnCompleted
o isOnError
para verificar el tipo real de evento para el que recibió una notificación.
Entonces, un Action.call
para gobernarlos a todos, en lugar de un Observer
toda regla