【问题标题】:RxJava flatmap chain skips errorsRxJava 平面图链跳过错误
【发布时间】:2019-12-05 12:45:52
【问题描述】:

我有以下代码

repository.operationOne()
            .flatMap {
                repository.operationTwo().map {
                    it.items
                }
            }
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                    {
                        // Success
                    },
                    {
                       // Error
                    })
            .trackDisposable()

问题是我的 operationOne() 从改造返回错误 400,但我在订阅中的错误块永远不会执行,因为第二个 api 调用成功。如果第一个失败并从订阅调用错误块,如何停止第二个 api 调用(operationTwo)?

编辑: 两个操作都返回单个。另外添加 onErrorResumeNext、doOnError 或 onErrorReturn 似乎没有任何作用

【问题讨论】:

  • 尝试使用onErrorReturn
  • 我尝试在 flatmap 之前和之后放置它,但无济于事。

标签: android kotlin rx-java retrofit2


【解决方案1】:

问题是因为 firstOperation 使用了带有响应 Single > 的改造,这显然不会在 400 响应上引发异常。

【讨论】:

    猜你喜欢
    • 2017-03-01
    • 2023-03-14
    • 2017-05-16
    • 1970-01-01
    • 2015-12-23
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多