首页 > 解决方案 > 如果发生错误异常,我如何计算执行重试运算符的次数

问题描述

@Injectable()
export class ErrorInterceptor implements HttpInterceptor {
    constructor() { }

    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        return next.handle(request)
            .pipe(
                retry(3),
                catchError((error: HttpErrorResponse) => {
                    let errorMessage = '';
                    if (error.error instanceof ErrorEvent) {
                        // client-side error
                        errorMessage = `Error: ${error.error.message}`;
                    } else {
                        // server-side error
                        errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
                    }
                    window.alert(errorMessage);                       
                    return throwError(error);
                }));
    }
}

以防我出错。我想获取重试运算符(retry(3))的执行次数,请有人可以帮帮我!

标签: angularerror-handlingobservableangular-http-interceptors

解决方案


当你有错误时会触发重试操作符,你只需要计算你有多少错误。这是这里的一个例子


推荐阅读