我的应用程序中有很多服务和许多http请求。 我想警告用户警告框中有api连接有问题,但我不想编辑每个服务中的每个http功能。我可以在一个地方做这个吗?
答案 0 :(得分:2)
Interceptors 是要走的路。但是,您必须使用新的HttpClient
而不是旧的,即将弃用的Http
。
这样的事情:
@Injectable()
export class ErrorHandlerService implements HttpInterceptor {
constructor() { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next
.handle(req)
.catch(err => {
console.log('HTTP error occured');
return Observable.throw(err);
});
}
}