在哪些情况下我应该使用doOnNext,在哪些情况下 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);
}
})
这看起来两个运算符具有相同的效果。
答案 0 :(得分:46)
他们确实非常接近。
有一点不同(实际上在javadoc中可能没有那么明确,在源代码中更明显)是在doOnEach中,你还会获得错误和完成事件的Notification
包装器。
然后,您可以检查isOnNext
,isOnCompleted
或isOnError
,以检查您收到通知的实际事件类型。
一个Action.call
来统治所有人,而不是完全成熟的Observer