2015-02-25 4 views
24

In welchen Fällen sollte ich doOnNext verwenden, und in welchen Fällen doOnEach?RxJava: Unterschied zwischen doOnNext und 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); 
       } 
      }) 

Dies sieht so aus, als hätten beide Operatoren denselben Effekt.

Antwort

35

Sie sind in der Tat ziemlich nah. Eine Sache, die sich unterscheidet (und es ist vielleicht nicht so klar in der Javadoc tatsächlich, mehr sichtbar im Quellcode) ist, dass Sie in doOnEach auch Notification Wrapper für Fehler und Abschluss-Ereignis erhalten.

Sie können dann isOnNext, isOnCompleted oder isOnError überprüfen, um die Art des Ereignisses zu überprüfen, für das Sie eine Benachrichtigung erhalten haben.

So ein Action.call sie alle zu regieren, anstatt eine völlig Observer flügge

Verwandte Themen