java - RxJava : what is difference between callbacks in doOnError ('callback' ) and subscribe(*, 'callback')

标签 java reactive-programming rx-java

在我的上一个项目中,我使用了 rxJava,我意识到 observable.doOnError('onErrorCallback').subscribe(action)observable.subscribe(action, 'onErrorCallback') 以不同的方式表现。即使从文档中,我也不清楚它们之间的确切区别以及何时应该使用第一个和第二个变体。

最佳答案

doOnError 运算符允许您将副作用注入(inject)到序列的错误传播中,但不会阻止错误传播本身。订阅者是事件的最终目的地,它们“退出”序列。

您可以通过以下示例看到 doOnError 的用处:

api.getData()
.doOnError(e -> log.error(e))
.retry(2)
.subscribe(...)

它允许您查看错误,但允许您在出现错误时重试。对于最终订阅者:

api.getData()
.subscribe(v -> {}, e -> log.error(e) );

您必须以自己的方式安排错误的处理(除了日志记录)。

关于java - RxJava : what is difference between callbacks in doOnError ('callback' ) and subscribe(*, 'callback'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30250467/

相关文章:

java - 在 Tomcat 中停止 ExecutorService 线程

java - 将数据从 swing 发送到 Servlet

java - 多重捕获或异常层次结构

java - H2数据库存储在哪里?

java - 使用 Webclient - Webflux 将两个 api 响应合并为一个

rx-java - 除非被打断,否则重复观察

java - 如何在同一线程中并行通量内运行单声道

rx-java - rxjava 行为主题删除/清除值

java - RxJava 从 Observable 更新数据

android - 如何使用rxandroid监听gps位置更新