android – 使用retrofit2 rxjava嵌套请求并忽略子请求中的错误

我使用retrofit2,我正在学习Rx
Java(与Retrolambda一起).我正在尝试实现以下流程:

>获取用户列表
>为每个用户,获取给定user_id的用户详细信息.
>返回具有详细信息的用户列表.

到目前为止这是我的代码:

getUsers().flatMapIterable(users -> users)
flatMap(user -> getDetailInfo(user.getID()
        .doOnNext(detailInfo -> user.setDetailInfo(detailInfo))
        .map(detailInfo -> user))
.toList().subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
subscribe(users -> {}, error -> {});

问题是当getDetailInfo给出404响应时,observable进入错误范围,即使getUsers给出200响应.只要getUsers提供200响应,如何将响应输入到用户范围?

希望我足够清楚.
谢谢

最佳答案 如果你想避免你的404破坏你的流,你应该使用onErrorResumeNext将你的错误转换为默认的响应,如null,然后即使链接的请求返回错误你流仍然存活.

点赞