해결하려는 문제 : 콘솔에서 찾을 수없는 404가 많이 표시되고이를 처리하고 싶습니다.
내 각도 코드에 다음 두 가지 방법이 있습니다.
getUserByEmailAddress(email: string): Observable<User> {
return this._http.get<User>("http://webapi.local/api/v2.0/users?email=" + email);
}
isEmailAddressAvailable(email: string) {
var user: User;
var response = this.getUserByEmailAddress(email);
response.subscribe(
usr => user == usr,
error => user == undefined);
if (user === undefined) {
return true;
}
else {
return false;
}
}
이것은 예상대로 작동합니다. 사용자가없는 경우 끝점을 호출하면 404가 반환되지 않습니다.
내가하려는 것
getUserByEmailAddress ()의 .get () 요청에 .catch ()를 추가하여 이러한 404를 처리하고 콘솔에 표시되지 않도록 마스크하고 싶지만 추가하려고 할 때 필요한 내용을 이해하지 못합니다. 관찰 가능에 대한 반환, 나는 시도했습니다.
.catch(err => { return Observable.of(undefined)})
그러나 나는 이것이 옳지 않다고 생각합니다.
도와 주셔서 감사합니다!
내 앱에서 404 오류를 처리하기 위해 내가하는 일은 catch 블록입니다.
if(err.status == 404)
return Observable.throw(new NotFoundError())
else
return Observable.throw(new AppError(err))
그러나 먼저 모든 오류에 할당되는 AppError라는 두 개의 클래스를 만들어야하며 notfoundError는 AppError IN apperror.ts의 인스턴스가 될 404 오류에 할당됩니다.
export class AppError {
constructor(public err?:any){
console.log(err);
}
}
그리고 notFound.ts에서
import { AppError } from "./apperror";
export class NotFoundError extends AppError {
}
그런 다음 구독에서 다음과 같이 이러한 오류를 처리 할 수 있습니다.
response.subscribe(
usr => user == usr,
((err:Error)=>{
if(err instanceof NotFoundError){
alert(err)
}
})
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다