Обработка угловых ошибок с использованием catchError (некоторые функции возвращаются, которые можно наблюдать) - PullRequest
0 голосов
/ 17 апреля 2019

Просматривая документы Angular для обработки ответов об ошибках HTTP в службе, я натолкнулся на что-то вроде этого:

getContext(){
   return this.http.post(this.testUrl, {})
       .pipe(
           catchError(this.handleError)
       )
}

handleError(error: HttpErrorResponse){
    if(error.error instanceof ErrorEvent){
        console.log('An error occurred:', error.error.message);
    } else {
        console.log(
            `Backend returned code ${error.status}` +
            `body was ${error.error}`
        )
    }
    return throwError('Need to fix!');
}

Мне было интересно, почему this.handleError не передается аргумент (HTTPErrorResponse) и как он работает без его получения?

1 Ответ

0 голосов
/ 17 апреля 2019

Метод handleError передается как обратный вызов catchError.

doSomething(callback) {
    // Call the callback with arguments
    callback('Hello world');
}
saySomething(param) {
   console.log(param);
}
doSomething(saySomething);

Попробуйте представить, что catchError делает то же самое для вашей функции handleError.Вызовет его с аргументами, вы просто укажите, какую функцию вызывать при возникновении ошибки.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...