试图弄清楚为什么它不起作用以及我所缺少的东西。
在登录页面中,我正在调用服务中的功能
this.comms.updateAccessedState();
内部服务
async updateAccessedState() {
console.log("get this token 1");
await this.getToken();
console.log(`3 ${this.token}`);
}
和
getToken() {
this._currentUser.getProfile().then((data) => {
console.log("retrieve token 2");
this.token = data.token;
});
将其打印到控制台时
我得到get token => 1
3 undefined
retrieving token => 2
为什么函数没有被“等待”
答案 0 :(得分:1)
您需要使方法getToken
async
,并使其返回promise。更改为此:
async getToken(): Promise<any> {
return this._currentUser.getProfile().then((data) => {
console.log("retrieve token 2");
this.token = data.token;
});
答案 1 :(得分:0)
我相信这也会起作用。我发现如果可能的话,不要将async
/ await
与then
混合在一起。
async getToken() {
let data = await this._currentUser.getProfile();
console.log("retrieve token 2");
this.token = data.token;
});