Rxjava处理链式可观察错误

时间:2015-12-02 13:16:00

标签: android rx-java

因此想象我正在使用Observable::from迭代某个列表,并且对于我想要执行一系列操作的每个项目,每个操作都可以返回错误。我用flatMap做它,最后我返回原始项目,然后调用toList

对每个项执行几个操作的链式可观察对象可以返回错误,我想在所有这些情况下终止整个流并在订阅调用之前调用最终的onError。

有没有办法实现呢?

编辑:我知道我可以使用onErrorResumeNext并保持Observable.from迭代,但我想终止流,这意味着,如果发现错误,将不再进行迭代,我只是想终止在最终的OnError调用中流并显示错误。代码:

        dbRepository.getAppAllHomeItems()
            .flatMap(Observable::from)
            .flatMap(homeItem -> knoxStandardSdk.wipeApplicationDataObs(homeItem.getApplicationPackageName()))
            .subscribeOn(Schedulers.computation())
            .toList()               
            .doOnError(throwable -> AppSnackbarUtils.showSnackBar((Activity)context, "Please Activate Licenses First!", AppSnackbarUtils.LENGTH_LONG))                
            .subscribe();

1 个答案:

答案 0 :(得分:0)

您描述的行为是违规行为。

尽管如此,您还应该在订阅服务器中实现onError-Method。