Làm cách nào để thêm nhiều bộ chặn HTTP độc lập vào ứng dụng Angular 4?
Tôi đã cố gắng thêm chúng bằng cách mở rộng providers
mảng với nhiều hơn một bộ đánh chặn. Nhưng chỉ cái cuối cùng thực sự được thực thi, Interceptor1
bị bỏ qua.
@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 {}
Rõ ràng là tôi có thể kết hợp chúng thành một Interceptor
lớp duy nhất và điều đó sẽ hoạt động. Tuy nhiên, tôi muốn tránh điều đó vì những thiết bị đánh chặn này có các mục đích hoàn toàn khác nhau (một để xử lý lỗi, một để hiển thị chỉ báo tải).
Vậy làm cách nào để có thể thêm nhiều bộ đánh chặn?
Http
. Chỉ ghi đè cuối cùng được sử dụng. Interceptor1 không bị bỏ qua, nó chỉ là không tồn tại. Bạn có thể sử dụng HttpClient có bao gồm các bộ đánh chặn.