import { Injectable } from '@angular/core'; import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http'; import { Observable } from 'rxjs'; import { finalize } from 'rxjs/operators'; import { LoadingService } from '../services/loading.service'; @Injectable() export class LoadingInterceptor implements HttpInterceptor { constructor(private loadingService: LoadingService) {} intercept(request: HttpRequest, next: HttpHandler): Observable> { this.loadingService.showLoader(); return next.handle(request).pipe( finalize(() => this.loadingService.hideLoader()) ); } }