Я использую @ngrx/store, чтобы получить токен из хранилища и поместить его в заголовки HTTP, я пытался использовать flatmap mergeMap, но все они продолжают дублировать HTTP-запросы, и когда я использую take (1), он продолжается. запрос цикла и зависает, это то, что у меня есть:
@Injectable()
export class AuthInterceptorService implements HttpInterceptor {
token$: Observable<string>;
constructor(private readonly store: Store<fromRoot.State>) {
this.token$ = store.select(fromAuth.getToken);
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return this.token$
.map(token => {
if (token) {
request = request.clone({setHeaders: {Authorization: `Bearer ${token}`}});
}
})
.mergeMap(() => next.handle(request));
}
}