【问题标题】:httpClient oninit and ondestroy methodhttpClient oninit 和 ondestroy 方法
【发布时间】:2019-05-20 23:19:37
【问题描述】:

Angular 中的 httpClient 方法是否有类似 ngOnit 和 ngOnDestroy 的方法?基本上,我试图在每次调用 httpClient 时显示微调器并隐藏微调器。

【问题讨论】:

标签: angular typescript httpclient angular-services


【解决方案1】:

你需要一个拦截器:

只需创建一个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了解更多参考。

【讨论】:

    猜你喜欢
    • 2016-09-19
    • 2019-01-26
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    相关资源
    最近更新 更多