Свойство catch не существует для типа Observable - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь добавить перехватчик обработки ошибок с rxjs, но у меня проблема с его компиляцией, потому что "catch" мигает красным

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {
    console.log(req);
    return next.handle(req).catch(error => {
        if (error instanceof HttpErrorResponse) {
            this.messageService.error(`Błąd połączenia: ${error.message}`);
        }
        return observableThrowError(error);
    });
}

}

1 Ответ

0 голосов
/ 07 января 2019

В более новых версиях rxjs вы должны использовать оператор pipe и ловить его внутри. исх

Пример:

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {
        return next
            .handle(req)
            .pipe(catchError( (error: HttpErrorResponse) => {
                 this.messageService.error(`Błąd połączenia:${error.message}`);
                 return throwError(error);
            }
        ))
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...