是否可以在正在进行的http请求完成之前发出http请求(例如,:在正在进行的请求完成之前从服务器获取令牌/刷新令牌)。
我已经使用Angular 5 httpInterceptor
实现了以下功能,但是我无法使用Angular 7做到这一点。
intercept(request: HttpRequest<any>,next: HttpHandler): Observable<HttpEvent<any>> {
return Observable.fromPromise(this.handleAccess(request, next))
.map(response => {
console.log(response);
this.globalService.showOrShowloadingModel("hide");
return response;
})
.catch(error => {
console.log("HTTP error", error);
return Observable.of(error);
});
}
private async handleAccess(request: HttpRequest<any>,next: HttpHandler): Promise<HttpEvent<any>> {
//logic to fire token api
await this.globalService.validateAccessToken();
return next.handle(request).toPromise();
}
答案 0 :(得分:0)
您可以尝试使用ForkJoin。您可以使用ForkJoin调用多个Http请求。
首先,您必须从rxJs导入forkJOin。
然后
forkJoin(
this._myService.makeRequest('Request One', 2000),
this._myService.makeRequest('Request Two', 1000),
this._myService.makeRequest('Request Three', 3000)
)
它将同时调用这三个请求