Я использую следующие состояния для обработки моего состояния API
enum RequestState<T: Decodable> {
case loading
case loaded(T)
case error(Error)
}
и следующий код для изменения этих состояний:
let response = request
.flatMapLatest {
provider.rx.request($0)
.map(T.self).map { RequestState.loaded($0) }
.asDriver(onErrorRecover: { error in
return Driver.just(.error(error))
})
.startWith(.loading)
}
все работает классно, кроме одного вопроса. case loading
работает только тогда, когда все нормально с сетью и запросом выполняется.
Соединение
Нажмите - Загрузка счетчика - Ответ
Нет связи
Tap - задержка истощения сети - Нет ответа на соединение
Я бы хотел начать загрузку всегда. Возможно используйте новое состояние case startedLoading
. И получить это состояние, когда новый запрос будет отправлен в последовательность (например, после нажатия кнопки обновления).