Як додати кілька незалежних перехоплювачів 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
. Використовується лише останнє скасування. Перехоплювач1 не ігнорується, він просто не існує. Ви можете використовувати HttpClient, який містить перехоплювачі.