因此想象我正在使用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();
答案 0 :(得分:0)
您描述的行为是违规行为。
尽管如此,您还应该在订阅服务器中实现onError-Method。