首页 > 解决方案 > 与 RxJava 并行调用独立的网络调用并处理错误

问题描述

我正在尝试调用多个网络调用(总共 5 个),每个都独立于其他。我知道如何使用 RxJava 调用链式网络调用。但是通过链式调用,如果调用第 3 次或第 4 次网络调用出错,则不会执行其余调用。所以我希望其余的网络调用即使在以前的调用失败时也能继续执行。有没有办法解决这种情况?

标签: androidrx-java2

解决方案


是的,有,你可以使用 onErrorResumeNext。我的代码示例:

primaryMenuFetcher.getMenu() .observeOn(uiScheduler) .flatMap { menuItems -> onView { primaryMenu = menuItems setPrimaryMenuList(primaryMenu) } return@flatMap model.getPromotions() } .onErrorResumeNext { return@onErrorResumeNext model.getPromotions() } .observeOn(uiScheduler) .doFinally { onView { hideProgressBar() } } .subscribe({ fetchedLeagues -> onView { featuredLeagues = fetchedLeagues showPopularLeagues() setPopularLeaguesList(featuredLeagues) } }, { showError() })

还有其他 Rx2 错误处理选项。参考文档


推荐阅读