Come aggiungere più intercettori HTTP indipendenti a un'applicazione Angular 4?
Ho provato ad aggiungerli estendendo l' providers
array con più di un intercettore. Ma solo l'ultimo viene effettivamente eseguito, Interceptor1
viene ignorato.
@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 {}
Ovviamente potrei combinarli in un'unica Interceptor
classe e dovrebbe funzionare. Tuttavia, vorrei evitarlo poiché questi intercettori hanno scopi completamente diversi (uno per la gestione degli errori, uno per mostrare un indicatore di caricamento).
Allora come posso aggiungere più intercettori?
Http
. Viene utilizzato solo l'ultimo override. Interceptor1 non viene ignorato, è semplicemente inesistente. Puoi usare HttpClient che include gli intercettori.