我正在审核一个源代码文件,在某个提交中发现我们更改了使用方式
.doOnSuccess(response -> logBodyAsJSON(response ));
进入
.doOnEach(response -> logBodyAsJSON(response ));
我找不到明确的理由去做那件事。
那么,doOnSuccess和doOnEach之间有什么区别,我应该在哪种情况下使用它们?
我正在审核一个源代码文件,在某个提交中发现我们更改了使用方式
.doOnSuccess(response -> logBodyAsJSON(response ));
进入
.doOnEach(response -> logBodyAsJSON(response ));
我找不到明确的理由去做那件事。
那么,doOnSuccess和doOnEach之间有什么区别,我应该在哪种情况下使用它们?
doOnSuccess
会在你的Observable成功返回一个项且不引发错误时被调用,正如其名称所示。因此,您只会记录确认响应。doOnSuccess
适用于Single或Maybe,它们只能发出单个项目(否则将使用doOnNext
)。如果您使用可以发出多个项的Observable,则使用doOnNext
来具有完全相同的行为。
doOnEach
无论observable发出项、错误与否都将被调用。它接收一个通知而不是项本身。它将被调用:
doOnNext
的原因。