httpclient - Angular 4 HttpInterceptor : show and hide loader -


i have implemented httpinterceptor interface in order intercept outgoing requests , incoming responses.

i want show loader when request created , hide loader when response received.

although code bellow works when httpresponse detected, not detect http failure (when response code different 200), therefore, loader not hidden.

@injectable() export class authinterceptor implements httpinterceptor { constructor(private loaderservice: loaderservice) { }  intercept(req: httprequest<any>, next: httphandler): observable<httpevent<any>> {      this.loaderservice.show();      return next         .handle(req)         .do(event => {             //nothing printed when http failure occurs             console.log('detecting event ', event);             if (event instanceof httpresponse) {                 console.log('detecting http response');                 this.loaderservice.hide();             }         });   } } 

try adding error handling catch observable next:

.catch((error: any) => {         if (error instanceof httperrorresponse) {           this.loaderservice.hide();           // show error user here         } else {           return observable.throw(error);         }  }) 

Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -