【问题标题】:RxJava: what is difference between callbacks in doOnError('callback') and subscribe(*, 'callback')RxJava:d​​oOnError('callback') 和 subscribe(*, 'callback') 中的回调有什么区别
【发布时间】:2015-07-26 20:16:30
【问题描述】:

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

【问题讨论】:

    标签: java reactive-programming rx-java


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 我正在搜索,我不知道要多少天才能找到这个简单的行:.subscribe(v -> {}, e -> log.error(e) );谢谢。
    【解决方案2】:

    根据文档doOnError 默认情况下不会在特定调度程序上运行

    【讨论】:

    • 对于 subscribe() 也是如此,但我也认为与 OP 的问题无关。
    猜你喜欢
    • 2017-08-21
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    相关资源
    最近更新 更多