【问题标题】:RxJava on error perform onErrorResumeNext() but also take some actionRxJava 出错时执行 onErrorResumeNext() 但也会采取一些措施
【发布时间】:2018-11-22 04:55:14
【问题描述】:

在迭代和获取 Web 响应时,链会在遇到错误时停止。

我使用 .onErrorResumeNext(Observable.empty()) 来保持迭代继续进行,但也想做一些错误处理。如何做到这一点?

                    .getRepos()
                    .flatMap { itemList ->
                        //fetches all repos      
                        Observable.fromIterable(itemList)
                    }
                    .concatMapEager { githubItem ->
                        //fetches commits of each repos 
                        networkModule.getCommits().map { commitItem ->

                            dataBaseModule.insertRepo(commitItem)
                        }.onErrorResumeNext(Observable.empty()) 
  //here I want to take some action instead of just passing an empty observable
                    }

【问题讨论】:

  • 您可以使用doOnError() 运算符来执行错误操作。将它放在onErrorResumeNext() 运算符之前。
  • 感谢这项工作!这应该是公认的答案。

标签: android retrofit retrofit2 rx-java2 rx-android


【解决方案1】:

您可以在 onErrorResumeNext() 之前使用 doOnError() 运算符来执行操作。

...
.doOnError( error -> {} )
.onErrorResumeNext( Observable.empty() )
...

【讨论】:

    猜你喜欢
    • 2014-05-11
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    相关资源
    最近更新 更多