2017-11-10 9 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(); 
     }); 
    } 

答えて

関連する問題