【发布时间】:2017-06-26 07:47:54
【问题描述】:
我正在为我的前端使用 ng2-ui-auth,但我偶然发现了一个我不知道如何解决的问题...这是我的 UserService 中的一个简单方法,但有一个问题 - 异步正在调用方法以获取 http.get 调用所需的一个必要令牌。
getUser()
{
const headers: Headers = new Headers();
headers.append('Accept', 'application/json');
headers.append('Content-Type', 'application/json');
headers.append('X-Auth-Token', this.authService.getToken());
const options = new RequestOptions({headers: headers});
return this.http.get('http://localhost:9900/user', options).map(response => response.json());
}
问题是 - 有时 http.get 在 this.authService.getToken 返回数据之前被调用,所以我最终在“X-Auth-Token”中得到一个空值,从而给我留下一个“未经授权”的错误。
有没有办法等到header完成后再返回http.get?
【问题讨论】:
-
我认为这必须重构,以便 getUser() 本身返回一个 Promise。您可以将 authService 调用放在 Promise 中,然后使用 then 执行其余代码。
-
getToken() 是网络服务吗?它调用一个http请求
标签: angular typescript asynchronous