У меня есть приложение, которое подключается к API, состояние API может быть в случае успеха или в случае ошибки, приложение работало до недавнего времени, у нас была проблема, когда наш сервис был приостановлен и во время проверок вместо вызова API дляпереходите к ошибке в качестве сообщения о состоянии, статус был ~ сбой ~, и, как таковое, приложение оставалось на экране без отображения сообщения типа «Произошла ошибка, попробуйте еще раз».Как я могу обойти поддержку сообщения ~ fail ~?
Сеть
func refreshActiveTrip() -> Observable<MaxResponse<Trip>> {
return ApiClient.session.rx.request(urlRequest: MaxApiRouter.getActiveTrip(userId: getUser()!.id!))
.convert(to: MaxResponse<Trip>.self)
.catchError({ error in
// Server returns 404 when the user has no active trip
if let error = error as? NetworkingError, let code = error.httpResponse?.statusCode,
code == HTTPStatus.notFound.rawValue {
return Observable<MaxResponse<Trip>>.just(MaxResponse<Trip>())
} else {
return Observable.error(error)
}})
.do(onNext: { response in
if let trip = response.data {
self.storage.saveTrip(trip)
} else {
self.storage.deleteTrip()
}
})
}
Где это называется
func refreshActiveTrip() {
source.refreshActiveTrip()
.retry(.delayed(maxCount: 100, time: 2.5), shouldRetry: networkRetryPredicate)
.asObservable()
.take(1)
.subscribe(onNext: {[weak self] response in
print("Next")
}, onError: {[weak self] (error) in
print("Error")
}, onCompleted: {
print("Completed")
}, onDisposed: {
print("Disposed")
}).disposed(by: disposeBag)
}