【发布时间】:2021-01-28 19:53:09
【问题描述】:
我的服务中有这个函数可以很好地返回响应:
public refreshToken(): string {
const token_refresh = localStorage.getItem('token_refresh');
this.http.post<any>(environment.baseApiUrl + 'token_refresh', {token_refresh}, this.requestOptions).subscribe(
response => {
localStorage.setItem('token', response.token);
return response.token;
}
);
}
在 http 拦截器中,我想获取返回的 response.token :
token = this.authService.refreshToken();
但我没有得到令牌值,而是得到undefined。
我想这可能与异步行为有关,但我不知道如何获得正确的返回值。
【问题讨论】:
-
您正在对其中包含异步调用的方法进行同步调用。调用 this.authService.refreshToken();不会等待您的 observable 订阅返回值,因此它将返回 undefined。
标签: angular angular-httpclient angular-http-interceptors