У меня есть Ionic 3 App , где я использую HttpClient , и у меня есть API вызов, который является GET запросом к сервер . Когда первая попытка не удалась, я назову retryWhen
, если происходит ошибка.
Проблема в том, что я не смог поймать ошибку для звонящего
Вот мой сервис код ниже.
getDriverMeInfo() {
return this.http.get(`${this.global.baseUrl}/me`)
.retryWhen(err => err.delay(10000).take(10)) // Delay after 10 seconds when an error occured and retry maximum of 10 takes
.concat(Observable.throw(new Error('Retry limit exceeded!'))).toPromise()
}
Код компонента ниже, который является вызывающим абонентом
async getDriverInfo() {
try {
const meDetails = await this.driverMe.getDriverMeInfo() // Get the profile information of the driver if
console.log(meDetails)
} catch (err) {
console.log(err) // This wouldn't catch the error on the HttpErrorResponse
}
}
Единственное, что я улавливаю в ошибке, это Observable.throw(new Error('Retry limit exceeded!'))
, но экземпляр HttpErrorResponse
, который даст мне код состояния или сообщение , почему произошел сбой нельзя поймать.
Цените, если кто-то может помочь.
Заранее спасибо.