Как добавить несколько независимых перехватчиков 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, в который включены перехватчики.