在我的上一个项目中,我使用了 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/