如何解决可观察到的HttpResponseError
我正在尝试使用可观察的方法处理HttpError或HttpErrorResponse,但我所能做的就是处理所需的HttpResponse,但我还需要避免这种情况
我需要能够在响应出现问题时提醒用户,也许他们可以重试...
this.addService.log()
.subscribe(event => {
if (event instanceof HttpResponse) {
//do something
} else if ( event instanceof HttpErrorResponse){
console.log(`couldn't httperrorresponse`)
} else if (event instanceof ErrorEvent){
console.log(`couldn't errorevent`)
}
});
}
我已经尝试将整个内容放入try catch中,但仍然不会引发错误
解决方法
您可以使用HTTPInterceptor-Interceptor。
您将看到以下内容:
@Injectable({
providedIn: 'root'
})
export class ErrorInterceptorService implements HttpInterceptor {
constructor(private toastr: ToastrService,private router: Router) { };
intercept(req: HttpRequest<any>,next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).pipe(
retry(1),// repeating the request one time on error
catchError((error) => {
if (error) {
// Do what you want with the error
return throwError(error); // Throw error like it normally does,without the catchError
}
}
}
您可以尝试使用此tutorial。
,最好的方法,无需创建服务...添加一个逗号并添加一个错误“订阅”,但我想每当发生错误时,它都会被触发...所以... 快乐的编码呼吸
this.addService.log()
.subscribe(event => {
if (event instanceof HttpResponse) {
//do something
} else if ( event instanceof HttpErrorResponse){
console.log(`couldn't httperrorresponse`)
} else if (event instanceof ErrorEvent){
console.log(`couldn't errorevent`)
}},err=>{
console.log(err)
JSON.stringify(err)
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。