Come aggiungere più intercettori HTTP indipendenti a un'applicazione Angular 4?
Ho provato ad aggiungerli estendendo l' providersarray con più di un intercettore. Ma solo l'ultimo viene effettivamente eseguito, Interceptor1viene 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 Interceptorclasse 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.