запрос в сеть.
В случае ошибки запроса, нужно сделать другой запрос. И только в случае успеха выполнения второго запроса,
передернуть первый запрос.
Сделал примерно вот так, но это не работает: вешает приложение, хотя okhttp в логах показывает,
что запрос из fun2 отрабатывает и прилетает 200 от сервера.
Грешу на blockingGet. Но если не блокировать запрос, а пользоваться subscribe({},{}), то происходит гонка,
и логика ломается.
Прошу дать советы, подсказать, ибо мои познания в rx пока достаточно поверхностны.
private fun fun1() {
var disposable: Disposable? = null
disposable = interactor.updateDictionary()
.doFinally { disposable?.dispose() }
.subscribe(
{},
{ error ->
if interactor.fun2()
fun1()
}
)
}
fun fun2(): Boolean {
var success = false
try {
val updateValue = updateFun()
.blockingGet()
success = true
} catch (exception: Throwable) {
Timber.e(exception)
success = false
}
return success
}
тебе же вчера отвечали, напиши свой interceptor
onErrorResumeNext
Обсуждают сегодня