在我的上一个项目中,我使用rxJava,我意识到observable.doOnError('onErrorCallback').subscribe(action)
和observable.subscribe(action, 'onErrorCallback')
的行为方式不同。即使是从文档中我也不清楚它们之间的区别是什么,以及何时应该使用第一和第二变体。
答案 0 :(得分:22)
doOnError
运算符允许您将副作用注入序列的错误传播,但不会停止错误传播本身。订阅者是事件的最终目的地,他们“退出”序列。
您可以通过以下示例了解doOnError
的用处:
api.getData()
.doOnError(e -> log.error(e))
.retry(2)
.subscribe(...)
它允许您查看错误,但允许您在发生错误时重试。终端用户:
api.getData()
.subscribe(v -> {}, e -> log.error(e) );
您必须以自己的方式安排处理错误(除日志记录外)。
答案 1 :(得分:0)
根据文档doOnError
默认情况下不会在特定的调度程序上运行