2017-11-10 14 views
0

요청이 완료되었는지 확인하려면 if (httpEvent instanceof HttpResponse)을 수행하십시오. 마찬가지로 요청이 HttpInterceptor에서 취소되었는지 어떻게 알 수 있습니까? 아래는 내 intercept 기능입니다.각도 : HttpClient에서 요청이 취소되었는지 확인하는 방법

intercept(httpRequest: HttpRequest<any>, httpHandler: HttpHandler): Observable<HttpEvent<any>> { 
    this.requestsPending++; 

    if (this.typeAheads.includes(httpRequest.url.split('/').pop())) 
     this.slimLoadingBarService.start(); 
    else 
     this.flsLoaderService.start(); 

    return httpHandler.handle(httpRequest) 
     .do((httpEvent: HttpEvent<any>) => { 
     if (httpEvent instanceof HttpResponse) { 
      // decrementing counter on each request return 
      this.requestsPending--; 

      if (this.typeAheads.includes(httpEvent.url.split('/').pop())) { 
      if (this.requestsPending === 0) 
       this.slimLoadingBarService.complete(); 
      } 
      else { 
      if (this.requestsPending === 0) 
       this.flsLoaderService.stop(); 
      } 
     } 
     },() => { 
     this.slimLoadingBarService.complete(); 

     // reset counter on error 
     this.requestsPending = 0; 
     this.flsLoaderService.stop(); 
     }); 
    } 

답변