Como adicionar vários interceptores HTTP independentes a um aplicativo Angular 4?
Tentei adicioná-los estendendo a providersmatriz com mais de um interceptador. Mas apenas o último é realmente executado, Interceptor1é ignorado.
@NgModule({
declarations: [ /* ... */ ],
imports: [ /* ... */ HttpModule ],
providers: [
{
provide: Http,
useFactory: (xhrBackend: XHRBackend, requestOptions: RequestOptions) =>
new Interceptor1(xhrBackend, requestOptions),
deps: [XHRBackend, RequestOptions],
},
{
provide: Http,
useFactory: (xhrBackend: XHRBackend, requestOptions: RequestOptions) =>
new Interceptor2(xhrBackend, requestOptions),
deps: [XHRBackend, RequestOptions]
},
],
bootstrap: [AppComponent]
})
export class AppModule {}
Obviamente, eu poderia combiná-los em uma única Interceptorclasse e isso deve funcionar. No entanto, eu gostaria de evitar isso, já que esses interceptores têm finalidades completamente diferentes (uma para tratamento de erros, outra para mostrar um indicador de carregamento).
Então, como posso adicionar vários interceptores?
Http. Apenas a última substituição é usada. O Interceptor1 não é ignorado, ele simplesmente não existe. Você pode usar o HttpClient que possui interceptores incluídos.