2015-02-25 17 views
24
arasındaki fark

Hangi durumlarda doOnNext kullanmalıyım ve hangi durumlarda doOnEach?RxJava: doOnNext ve 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); 
       } 
      }) 

Her iki işleç de aynı etkiye sahip gibi görünüyor.

cevap

35

Gerçekten oldukça yakınlar. Farklı olan bir şey (ve belki de javadoc'ta açıkça görünmüyor, kaynak kodunda daha görünür) doOnEach'te, hatalar ve tamamlama olayı için Notification sarmalayıcıları da elde edersiniz.

Daha sonra, bildirim aldığınız gerçek olay türünü kontrol etmek için isOnNext, isOnCompleted veya isOnError denetleyebilirsiniz.

Yani bir Action.call tam teşekküllü yerine, hepsini kural Observer