Угловой перехватчик выглядит так:
public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
catchError(err => {
if (err instanceof HttpErrorResponse) {
if (err.status === 401) {
this.auth.getToken().subscribe((refreshOk: boolean) => {
if (!refreshOk) {
this.router.navigate(["/login"]);
}
});
}
}
return Observable.throw(err);
})
);
Проблема в том, что одновременно выполняются четыре разных вызова API. Таким образом, одновременно выполняются четыре вызова getToken. Достаточно будет одного звонка. Как я могу гарантировать, что только один вызов будет сделан одновременно?