複数の独立したHTTPインターセプターをAngular4アプリケーションに追加するにはどうすればよいですか?
providers
複数のインターセプターで配列を拡張して、それらを追加しようとしました。ただし、実際に実行されるのは最後の1つだけであり、Interceptor1
無視されます。
@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 {}
私は明らかにそれらを単一のInterceptor
クラスに組み合わせることができ、それはうまくいくはずです。ただし、これらのインターセプターの目的はまったく異なるため(1つはエラー処理用、もう1つは負荷インジケーターを表示するため)、これは避けたいと思います。
では、どうすれば複数のインターセプターを追加できますか?
Http
。最後のオーバーライドのみが使用されます。Interceptor1は無視されず、存在しないだけです。インターセプターが含まれているHttpClientを使用できます。