Создайте несколько http-вызовов от http-перехватчика - PullRequest
1 голос
/ 25 сентября 2019

Возможно ли сделать запрос 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();
}

1 Ответ

0 голосов
/ 25 сентября 2019

Вы можете попробовать использовать ForkJoin.Вы можете вызвать несколько запросов Http с помощью ForkJoin.Сначала вы должны импортировать forkJOin из rxJs.Тогда forkJoin( this._myService.makeRequest('Request One', 2000), this._myService.makeRequest('Request Two', 1000), this._myService.makeRequest('Request Three', 3000) )

вызовет эти три запроса одновременно

...