@ ngrx/storeを使用してストアからトークンを取得してHTTPヘッダーに配置すると、フラットマップのmergeMapを使用しようとしましたが、それらはすべてHTTP要求を複製し続けます。 (1)それがループ要求とハングに行く取る、これは私が持っているものです。Observableを角型HttpInterceptorで返す
@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));
}
}
おそらくswitchMapを使用して、変更されたリクエストを実際にストリームに渡すだけでよいでしょう。 – bryan60