Jak dodać wiele niezależnych przechwytywaczy HTTP do aplikacji Angular 4?
Próbowałem je dodać, rozszerzając providerstablicę o więcej niż jeden przechwytywacz. Ale tylko ostatnia jest faktycznie wykonywana, Interceptor1jest ignorowana.
@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 {}
Mógłbym oczywiście połączyć je w jedną Interceptorklasę i to powinno działać. Chciałbym jednak tego uniknąć, ponieważ te przechwytywacze mają zupełnie inne cele (jeden do obsługi błędów, drugi do wyświetlania wskaźnika ładowania).
Jak więc mogę dodać wiele przechwytywaczy?
Http. Używana jest tylko ostatnia zmiana. Interceptor1 nie jest ignorowany, po prostu nie istnieje. Możesz użyć HttpClient, który zawiera przechwytywacze.