如何向Angular 4應用程序添加多個獨立HTTP攔截器?將多個HTTP攔截器添加到Angular應用程序
我試圖通過擴展providers
數組並添加多個攔截器來添加它們。但只有最後一個實際執行,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
類,並應工作。但是,我想避免這種情況,因爲這些攔截器有完全不同的目的(一個用於錯誤處理,一個用於顯示加載指示器)。
那麼如何添加多個攔截器?
你正在重寫'Http'。只使用最後的覆蓋。 Interceptor1不被忽略,它只是不存在。您可以使用包含攔截器的HttpClient。 – estus
@estus你的意思是「你可以使用包含攔截器的HttpClient」。 – str
https://angular.io/guide/http – estus