У меня есть Angular 4 приложение , в котором постоянно выполняется http запрос при навигации по всему приложению.
Я также хочу что-то сделать, когда таймаут http произошел три или более раз.
В запросе http возможны другие ошибки, но я хочу сосредоточиться только на ошибке тайм-аута.
У меня есть этот код ниже в моем http_interceptor .
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const re = '/u/auth/login';
const defaultTimeout = 10000;
if (req.url.search(re) || req.url.search('api.giphy.com/v1') === -1) {
const headers = new HttpHeaders({
Authorization: `Bearer ${localStorage.getItem('token')}`,
// 'Content-Type': 'application/json'
})
const dupReq = req.clone({headers});
const timeOut = Number(req.headers.get('timeout')) || this.defaultTimeout
return next.handle(dupReq).pipe(
timeout(timeOut),
catchError(e => {
return of(null)
})
)
} else {
return next.handle(req)
}
}
Как я могу обработать ошибки тайм-аута и как я могу знать, что они произошли три или более раз. Буду ли я увеличивать каждую ошибку? и просто использовать условие, чтобы сделать эту функцию?
В качестве дополнительного вопроса, как я могу также успешно обработать обратный вызов перехватчику?
Ценю, если кто-то может помочь.
Заранее спасибо.