Angular 12 - 在拦截器 Typescript 中承诺同步 class

Angular 12 - promise synchronious in interceptor Typescript class

我在我的 Angular 12 应用程序中使用这个 class:

@Injectable()
export class AppHttpInterceptor implements HttpInterceptor {

constructor(protected authService: AuthService, private router: Router) { }

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    console.log("intercepted request in AppHttpInterceptor#intercept");
    const token = this.authService.getToken().then(response => {
        const token = response;  
        let authReq = req.clone({
            setHeaders: {  
                'Content-Type': 'application/json',
                'x-auth-token': token
            }
        });
        return next.handle(authReq);
    })
  }
} 

我的问题 class 是我应该 return 一个 Observable - 我在承诺中这样做但是我必须在外面做什么或者无论如何如何解决这个问题?

您可以为此使用 rxjs from operator

return from(this.authService.getToken()).pipe(
      switchMap((token) => {
        let authReq = req.clone({
          setHeaders: {  
              'Content-Type': 'application/json',
              'x-auth-token': token
          }
        });
        return next.handle(authReq);
      })
    );