angular - httpClient oninit 和 ondestroy 方法
问题描述
Angular中的httpClient方法是否有像ngOnit和ngOnDestroy这样的方法?基本上,我试图在我进行的每个 httpClient 调用中显示一个微调器并隐藏微调器。
解决方案
你需要一个拦截器:
只需创建一个 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())
);
}
}
阅读本文以获取更多参考。
推荐阅读
- c++ - 将 float 转换为 std::string 而不会丢失精度。我也不想使用 sprintf
- java - 使用 MVC 时我应该选择什么监听器让视图监听模型?(爪哇)
- android - 带有 JSON 数据请求和响应的 POST 操作 - Retrofit vs Volley
- php - 来自被调用文件的魔术常数 - 不是动作文件
- sorting - 在交换过程中无法获得我想要的最终列表
- javascript - 隐藏相关视频 Youtube Iframe API
- azure - qnamaker 不应用知识库中的更改
- javascript - Angular 7:基于产品构建:属性“服务”是私有的,只能在“组件”类中访问
- python - Cython中python字典/对象/json的c数据类型是什么?
- javascript - 如何使用 Webpack 安装 FlipDown.js 库?