Dans quels cas devrais-je utiliser doOnNext et dans quels cas 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);
}
})
Il semble que les deux opérateurs aient le même effet.
Ils sont en effet assez proches. Une chose qui diffère (et ce n'est peut-être pas si clair dans le javadoc en fait, plus visible dans le code source) est que dans doOnEach, vous obtenez également des wrappers Notification
pour les erreurs et l'événement de fin.
Vous pouvez ensuite vérifier isOnNext
, isOnCompleted
ou isOnError
pour vérifier le type réel d'événement pour lequel vous avez reçu une notification.
Donc un Action.call
pour les gouverner tous, au lieu d'un véritable Observer