Я хочу обработать любые сообщения об ошибках от сервера после того, как пользователь создаст пост-ответ. Сообщение сделано в методе UserService createUser (). Там любые ошибки отлавливаются методом catch
, после чего выдается новая ошибка. Я читал, что это необходимо, иначе обратный вызов успеха внутри метода подписки будет активирован независимо от ошибки.
Я использую код Visual Studio в качестве своей IDE для этого проекта, и когда вы вводите оператор .
после переменной, он дает список любых методов, которые он может вызвать для этой переменной. Переменная обратного вызова success имеет все ожидаемые методы, включая заголовки. Ошибка обратного вызова имеет только HTML. Итак, мой вопрос: как я могу получить заголовки из ошибки? Мне нужен доступ к заголовкам, потому что мое пользовательское сообщение заголовка отправляется в заголовках. Это должно быть сделано в методе подписки, который находится в контроллере компонента, потому что, когда я обрабатываю ошибку в сервисе, я не могу сделать всплывающее сообщение об ошибке. Вот мой код:
Код на стороне контроллера компонента:
createUser():void{
this.loading = true;
this.userService.createUser(new UserCreateDTO(this.userForm.get('userName').value,
this.userForm.get('emailAddress').value,
this.userForm.get('password').value))
.subscribe(
success =>{
this.msgs.push({severity:'success', summary:'Success', detail: `User ${this.userForm.get('userName').value} succesfully created.`});
},
error =>{
let errorMessage: string = error.???
this.msgs.push({severity:'error', summary:'Error', detail: `error`});
}),
() =>{
this.loading = false;
}
}
}
Вопросительные знаки указывают на то, что никакие предложения методов не отображаются в стороне от метода html.
Код на стороне службы, где делается сообщение:
createUser(newUser: UserCreateDTO): Observable<Response> {
return this.http.post<Response>(this.authUrl + "/user/create", newUser)
.catch((error:any) =>{
return Observable.throw(new Error(error.status));
});
}
Спасибо