如何将多个独立的HTTP拦截器添加到Angular 4应用程序?
我试图通过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。