RxJava:d​​oOnNext和doOnEach之间的区别

在哪些情况下我应该使用doOnNext,在哪些情况下doOnEach?

.doOnEach(new Action1<Notification>() { @Override public void call(Notification notification) { } }) .doOnNext(new Action1() { @Override public void call(MessageProfile profile) { messageProfileDao.save(profile); } }) 

这看起来两个运营商都有相同的效果。

他们确实非常接近。 有一点不同(实际上在javadoc中可能没有那么清楚,在源代码中更明显)是在doOnEach中,您还会获得错误和完成事件的Notification包装器。

然后,您可以检查isOnNextisOnCompletedisOnError以检查您收到通知的实际事件类型。

所以一个Action.call来统治它们,而不是一个完全成熟的Observer