Я прочитал несколько других подобных вопросов, но информация, которая там была, не помогла мне найти ответ на мою проблему.У меня проблемы с попыткой передать ошибки, которые мне удается поймать внутри сервисов, компонентам.Так что это мой метод onSubmit внутри компонента, который регистрирует пользователя:
onSubmit({ value, valid }) {
console.log(value, valid);
if (valid) {
this.userService.trySaveUser({ email: value.email, password: value.password.pass }).subscribe(
(user) => {
console.log('saved user ' + user.email);
}),
(error) => {
console.log('inside error');
};
}
}
Он работает так, как должен, когда все верно на стороне сервера.Но в случае ошибки я не могу поймать это здесь.Однако он перехватывается в сервисе:
trySaveUser(body: User): Observable<any> {
return this.http.post<any>(this.pathAPI + '/user', JSON.stringify(body), super.header()).pipe(
catchError(super.handleError));
}
Внутри метода super.HandleError Я извлекаю данные из ошибки и могу без проблем распечатать их в консоли.Этот метод выглядит следующим образом:
public handleError(error: HttpErrorResponse | any) {
//...fetching data from the error to errMsg
//console.error(errMsg);
return throwError(errMsg);
}
Мне кажется, я не совсем знаю, как он работает, так как я ожидаю, что ошибка, возвращенная описанным выше методом, будет снова обнаружена в компоненте:
(error) => {
console.log('inside error');
};
... но этого не происходит.Почему так и как я могу это исправить?Мне нужно иметь его в компоненте, чтобы я мог отобразить сообщение об ошибке для пользователя.Буду благодарен за любую помощь!