我使用retrofit2和我学习RxJava(与Retrolambda一起)。我试图实现以下流程:
到目前为止,这是我的代码:
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响应,如何将响应输入到用户范围?
希望我已经足够清楚了。 谢谢
答案 0 :(得分:2)
如果您想避免404破坏您的流,您应该使用onErrorResumeNext
将您的错误转换为默认响应,例如null
,然后即使链接的请求返回错误,您的流也将继续存在。