Вы можете использовать Rx js операторы catchError и throwError , чтобы перехватить ошибку, сопоставить ее с пользовательским объектом и выбросить этот объект.
import { catchError, throwError } from 'rxjs/operators';
...
...
// user.service.ts
sendData(data: User) {
return this.http
.post<User>(`/api/v1/not-available`, data, {
withCredentials: true
})
.pipe(
catchError(err => {
return throwError({
statusCode: err.status,
msg: err.message
});
})
);
}
// user.component.ts
this.sendData(null).subscribe(
(success: User) => console.log(success),
(error: { statusCode: number; msg: string }) => console.error(error)
);
Для получения дополнительной информации о пользовательской обработке ошибок, я бы порекомендовал вам go через этот блог .
Надеюсь, что это помогает. Ура и счастливого кодирования !!!