【问题标题】:RxJava CombineLatest onErrorRxJava CombineLatest onError
【发布时间】:2019-02-25 09:21:40
【问题描述】:

我正在使用带有两个 observable 的 RxJava CombineLatest。 我的问题是,如果其中一个可观察对象以 onError 结尾,是否会调用组合 onNext?

当两个可观察对象都正确发出项目但我找不到错误情况下会发生什么时,文档显示了愉快的场景。

|----onError ----|可观察1

|----------- O ------- O ------|可观察2

|--------------?----------?----| CombineLatest - 会调用 onNext 吗?

【问题讨论】:

    标签: rx-java combinelatest


    【解决方案1】:

    一般约定是这样的:协调操作员在从任何来源收到第一个 onError 时终止,除非有一个 delayErrors 参数设置为 true 或操作员名称有 DelayError 后缀。

    还有一个额外的rule 用于combineLatest 关于由于空源引起的短路:

    如果任何源从不产生项目而只是终止(正常或有错误),则生成的序列会立即终止(正常或在该点之前累积所有错误)。如果该输入源也是同步的,则不会订阅它之后的其他源。

    【讨论】:

    • 感谢您的回答,但是,我通过使用 onErrorReturn 找到了一些解决方案,它允许源在出现错误时返回一些默认值。如果一个来源出错,这将使序列保持活动状态。
    猜你喜欢
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    相关资源
    最近更新 更多