Angular Typescript ionic 3异步/等待实现

Angular Typescript ionic 3异步/等待实现,angular,typescript,ionic3,Angular,Typescript,Ionic3,我目前面临一个问题,当UserData被注入到我的另一个组件中时,Load()函数总是在构造函数中的getFromStorageAsync()之前启动,因此ip_地址总是未定义 下面是我的服务代码(UserData) 由于未定义ip地址,无法从服务器获取数据。使用async和Wait是否正确。请帮忙。谢谢 在ionViewDidLoadstorage.ready()下的另一个组件中调用load()method?时,它不会返回承诺结果中的任何内容,当然也不会返回存储对象,它只是得到了满足。函数确实

我目前面临一个问题,当UserData被注入到我的另一个组件中时,Load()函数总是在构造函数中的getFromStorageAsync()之前启动,因此ip_地址总是未定义

下面是我的服务代码(UserData)


由于未定义ip地址,无法从服务器获取数据。使用async和Wait是否正确。请帮忙。谢谢

在ionViewDidLoadstorage.ready()下的另一个组件中调用
load()
method?时,它不会返回承诺结果中的任何内容,当然也不会返回存储对象,它只是得到了满足。函数确实返回了_的dbPromise只会保持承诺链的活动状态,并且已经被wait获取,不需要解释。在第一行中,您将ready()应用于storage,但在第二行中,将get()应用于this.storage。这是两个完全不同的对象。如果目的是在“传统的”then链中获取ready()返回的承诺,那么您永远不会以这种方式获得它。在发布代码之前,您是否尝试过该代码?menat编写_dbPromise,但是/\uw/被标记机器人转换为斜体…-*@返回{Promise}返回一个承诺,该承诺在存储就绪时解析。这是正确的,但我不认为将.ready()的返回值指定给某个对象有什么意义,它只是增加了混乱。这种混乱首先表现在将.ready()应用于存储,而将.get()应用于此.storage。你把苹果比作桔子。或者,如我所假设的,如果您的三行代码应该放在getFromStorageAsync()的内部,那么它只会抛出一个错误,因为存储不是在getFromStorageAsync()内部定义的,只有在您多余地分配了ready()的返回值之后。这就是为什么我问你是否检查过你的代码。
let storage = await storage.ready();
let val =     await this.storage.get('ip_address');
this.ip_address = val.toPromise();
let storage = await storage.ready();
let val =     await this.storage.get('ip_address');
this.ip_address = val.toPromise();