java - ConcatMap 没有选项并跳过错误 - RxJava

标签 java android rx-java rx-android

考虑这个例子: 我有一个按顺序下载的文件。如果一次下载失败,则应移至下一个。 伪代码:

Observable.from(urls)
 .concatMap(url -> downloadObservable(url)) 

如果下载失败,则无法移至下一个网址。

无法使用 onErrorResumeNext() 跳过,因为我只想移至下一个网址。有人可以帮忙吗?

最佳答案

从 1.3 开始,有一个用于此目的的运算符:concatMapDelayError。一般来说,如果有一个原因错误可能会延迟到所有源都被完全消耗掉,那么可能有一个 opNameDelayError 运算符。

Observable.from(urls)
    .concatMapDelayError(url -> downloadObservable(url))
    .doOnError(error -> {
        if (error instanceof CompositeException) {
           System.out.println(((CompositeException)error).getExceptions().size());
        } else {
            System.out.println(1);
        }
    });

(doOnError 附录来自 RxJava 问题列表上更新的 OP cross post。)

关于java - ConcatMap 没有选项并跳过错误 - RxJava,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48111319/

相关文章:

rx-java - 什么时候应该使用blockingGet?

java - 可以在方法内部请求输入吗?

Java ZK+Javascript JQuery Galleria IO 全屏模式

Android - 动画发生后,键盘不会出现在编辑文本中

java - RxJava : Dynamic set of observables

android - RxJava - 链接请求和更新 UI

java - 动态添加新的maven依赖?

java - 如何解析java方法体?

android - 如何防止在 Android 平板电脑上安装应用程序?

android - 是否可以在 Android 应用程序中使用 CPLEX?