Angular 4 애플리케이션에 여러 개의 독립적 인 HTTP 인터셉터를 추가하는 방법은 무엇입니까?
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를 사용할 수 있습니다.