RxJava:doOnNext和doOnEach之间的区别

2022-08-31 19:56:27

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

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

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

所以一个人来统治他们所有人,而不是一个完全成熟的Action.callObserver


答案 2

推荐