首页 > 解决方案 > httpClient oninit 和 ondestroy 方法

问题描述

Angular中的httpClient方法是否有像ngOnit和ngOnDestroy这样的方法?基本上,我试图在我进行的每个 httpClient 调用中显示一个微调器并隐藏微调器。

标签: angulartypescripthttpclientangular-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())
        );
    }
}

阅读本文以获取更多参考。


推荐阅读