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