可观察的 HttpResponseError
Observable 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。
无需创建服务即可完成此操作的最佳方法...只需添加一个逗号并添加一个错误 'subscription' 我想但每次出现错误时都会触发...所以。 .. 快乐编码 breathren
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)
});
}
我正在尝试使用可观察对象处理 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。
无需创建服务即可完成此操作的最佳方法...只需添加一个逗号并添加一个错误 'subscription' 我想但每次出现错误时都会触发...所以。 .. 快乐编码 breathren
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)
});
}