gpt4 book ai didi

javascript - Ionic 3 在运行功能之前等待存储 promise 完全完成

转载 作者:太空狗 更新时间:2023-10-29 17:35:28 26 4
gpt4 key购买 nike

我正在尝试使用 ionic 存储中的 token 从服务器获取数据。我遇到的问题是获取 token promise 无法按时检索 token 。因此,每当我重新加载或重新打开应用程序时,它有时会返回未经授权的错误。

dashboard-service.ts

authUrl = "https://sampleapi.herokuapp.com"
authHeaders;

getToken() {
this.storage.get('token').then((token) => {
console.log('Bearer ' + token);
this.authHeaders = {
headers: new HttpHeaders({
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
})
}
});
}

getInfo(): Observable<Info> {
return this.http.get<Info>(this.authUrl + '/api/users/info', this.authHeaders).pipe(
catchError(this.handleError)
);
}

dashboard.ts

ionViewDidLoad() {
this._dashboardService.getToken();
this._dashboardService.getInfo().subscribe(
info => {
console.log('USER INFO: ' + info);
this.info = info
},
error => {
console.log('INFO ERROR: ' + error);
}
);
}

最佳答案

您可以从 getToken 返回一个 promise 然后执行 getInfo

getToken() {
return this.storage.get('token').then((token) => {
console.log('Bearer ' + token);
this.authHeaders = {
headers: new HttpHeaders({
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
})
}
});
}

在您的页面中

 ionViewDidLoad() {
this._dashboardService.getToken().then(_=> {
this._dashboardService.getInfo().subscribe(
info => {
console.log('USER INFO: ' + info);
this.info = info
},
error => {
console.log('INFO ERROR: ' + error);
}
)
}
)
}

关于javascript - Ionic 3 在运行功能之前等待存储 promise 完全完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49151008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com