【发布时间】:2019-05-20 23:19:37
【问题描述】:
Angular 中的 httpClient 方法是否有类似 ngOnit 和 ngOnDestroy 的方法?基本上,我试图在每次调用 httpClient 时显示微调器并隐藏微调器。
【问题讨论】:
标签: angular typescript httpclient angular-services
Angular 中的 httpClient 方法是否有类似 ngOnit 和 ngOnDestroy 的方法?基本上,我试图在每次调用 httpClient 时显示微调器并隐藏微调器。
【问题讨论】:
标签: angular typescript httpclient angular-services
你需要一个拦截器:
只需创建一个Service,负责设置Loader是否需要显示或隐藏。然后从你的拦截器中设置这个值:
import { Injectable } from "@angular/core";
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from "@angular/common/http";
import { Observable } from "rxjs";
import { finalize } from "rxjs/operators";
import { LoaderService } from '../services/loader.service';
@Injectable()
export class LoaderInterceptor implements HttpInterceptor {
constructor(public loaderService: LoaderService) { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
this.loaderService.show();
return next.handle(req).pipe(
finalize(() => this.loaderService.hide())
);
}
}
阅读this article了解更多参考。
【讨论】: