¿Cómo agregar múltiples interceptores HTTP independientes a una aplicación de Angular 4?
Intenté agregarlos extendiendo la providers
matriz con más de un interceptor. Pero solo el último se ejecuta realmente, Interceptor1
se ignora.
@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, podría combinarlos en una sola Interceptor
clase y eso debería funcionar. Sin embargo, me gustaría evitar eso, ya que estos interceptores tienen propósitos completamente diferentes (uno para el manejo de errores, otro para mostrar un indicador de carga).
Entonces, ¿cómo puedo agregar múltiples interceptores?
Http
. Solo se utiliza la última anulación. El Interceptor1 no se ignora, simplemente no existe. Puede usar HttpClient que tiene interceptores incluidos.