当我导航到我的IONIC应用程序中的另一个页面时,API调用(GET)不按预期工作,他们需要一个令牌进行授权,但在我第一次导航到该页面时,storage.get没有及时获得令牌。如果然后我回到主页,并再次返回,它的工作按计划进行。
ngOnInit(){
this.storage.get('token')
.then (result => this.token = result)
}
ionViewWillEnter(){
this.loadData()
}
async loadData(){
await this.getNotifications();
}
使用控制台日志,我看到第一次导航到该页面时令牌是空的。似乎storage.get花费了太多时间,并且在我获得令牌之前执行了API调用。我试着用async await设置ngOnInit,但没有成功。
1条答案
按热度按时间khbbv19g1#
看起来您面临着在进行API调用之前从存储中获取令牌的时间问题。由于
storage.get
方法是异步的,因此有可能在检索令牌之前执行API调用。这里有一个可能的解决方案,以确保在进行API调用之前获取令牌:通过使用
async/await
语法,可以确保在尝试加载数据之前获取令牌。如果令牌检索由于任何原因失败,您可以适当地处理该错误。这样,您将不会进行API调用,直到您有一个有效的令牌。