Wie füge ich einer Angular 4-Anwendung mehrere unabhängige HTTP-Interceptors hinzu?
Ich habe versucht, sie hinzuzufügen, indem ich das providers
Array mit mehr als einem Interceptor erweitert habe. Aber nur der letzte wird tatsächlich ausgeführt, Interceptor1
wird ignoriert.
@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 {}
Ich könnte sie natürlich zu einer Interceptor
Klasse zusammenfassen und das sollte funktionieren. Ich möchte dies jedoch vermeiden, da diese Abfangjäger völlig unterschiedliche Zwecke haben (einen zur Fehlerbehandlung, einen zur Anzeige eines Ladeindikators).
Wie kann ich also mehrere Abfangjäger hinzufügen?
Http
. Es wird nur die letzte Überschreibung verwendet. Interceptor1 wird nicht ignoriert, es ist einfach nicht vorhanden. Sie können HttpClient verwenden, der Interceptors enthält.