Advertisement
eltonsandre

SpinnerInterceptor.ts

Feb 10th, 2020
1,015
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
  3. import { Injectable } from '@angular/core';
  4. import { NgxSpinnerService } from 'ngx-spinner';
  5. import { Observable } from 'rxjs/Observable';
  6. import { finalize } from 'rxjs/operators';
  7.  
  8. @Injectable()
  9. export class SpinnerInterceptor implements HttpInterceptor {
  10.  
  11.   constructor(
  12.     private spinner: NgxSpinnerService
  13.   ) { }
  14.  
  15.   intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
  16.   let finished = false;
  17.  
  18.   setTimeout(() => {
  19.     if (!finished) {
  20.       this.spinner.show();
  21.     }
  22.   }, 5000);
  23.  
  24.   return next.handle(req).pipe(finalize(() => {
  25.     finished = true;
  26.     this.spinner.hide();
  27.   }));
  28. }
  29.  
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement