RxJava:doOnNext和doOnEach之间的区别

56

我应该在哪些情况下使用 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);
                }
            })

这看起来好像两个运算符具有相同的效果。

1个回答

63

它们确实非常接近。 有一个不同之处(在javadoc中可能不是很清楚,但在源代码中更明显),即在doOnEach中,您还会得到错误和完成事件的Notification包装器。

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

因此,只需一个Action.call来控制它们所有,而不是完整的Observer


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接