【发布时间】:2017-11-17 11:22:09
【问题描述】:
我有一个可以引发错误的 RXJava 链。 我希望链继续并忽略错误并到达订阅,仅针对某些特定错误。
例如在这段代码中
authDataManager
.getUserAccessToken(username, password)
.subscribeOn(Schedulers.io())
.doOnNext({
authDataManager.saveUserAccessToken(it)
})
.flatMap {
appDataManager.getStations()
}
.doOnNext({
appDataManager.persistStations(it)
})
.flatMap {
appDataManager.getDriverInformation()
}
.doOnNext({
appDataManager.persistDriverInformation(it)
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
onLoginSuccess()
},
{
onLoginFailure(it)
}
)
如果appDataManager.getStations() 抛出错误,我还想继续并到达onLoginSuccess() 方法。
但是,如果 getUserAccessToken(username, password) 失败,则应调用 onLoginFailure。
我尝试在平面图之后和内部添加 onErrorResumeNext() 和 onExceptionResumeNext(),但如果我这样做,链就会退出并且不会继续并到达订阅
【问题讨论】:
-
你在处理 Observable 吗?如果是这样,您可以将 onLoginSuccess() 放在 onComplete 中,无论成功或错误,它都会被调用。
-
是的,它是一个 Observable。如果第一次调用(
authDataManager.getUserAccessToken(username, password))失败,我希望调用 onLoginFailure 的问题
标签: java android kotlin rx-java