是否有可能检测到任何http请求的开始以及何时以angular2结束调用? 这是我的自定义http服务:
CASE WHEN ...
答案 0 :(得分:2)
在角度2中执行此操作的推荐方法是提供httpwrapper服务。这看起来像这样:
@Injectable()
export class CustomHttp extends Http {
private activeCalls: number;
private store: Store<ApplicationState>;
constructor(backend: ConnectionBackend, defaultOptions: RequestOptions, store: Store<ApplicationState>) {
super(backend, defaultOptions);
this.store = store;
this.activeCalls = 0;
}
get(url: string, options?: RequestOptionsArgs): Observable<Response> {
this.httpCallRequested();
return super.get(url, options).finally(
() => {
this.httpCallReady();
}
);
}
}
这是一个不完整的例子。在这里找到完整的一个:https://github.com/brechtbilliet/winecellar/blob/master/src/app/customHttp.ts
此类包装所有http调用,并允许您在执行之前和之后执行某些操作。 要在任何地方使用此包装器而不是普通的HTTP服务,您应该在app模块中提供此类。这可以这样做:
@NgModule({
imports: [BrowserModule, AboutModule, AuthenticationModule, CommonLogicModule, StockModule, routing],
declarations: [ApplicationContainer],
exports: [ApplicationContainer],
providers: [
AppSandbox,
{
provide: Http,
useFactory: customHttpFactory,
deps: [XHRBackend, RequestOptions, Store]
}
]
})
注意提供者部分。如果他们注入了#http; http:感谢角度2 DI机制。