Javascript 离子3存储定时
我正在从存储器中加载一些json,并打算在页面html模板中显示信息。但是,当我这样做时,在进入页面时,我会收到错误,暗示信息(尚未)可用 我可能误解了这个概念,但是否可以对离子存储进行同步调用而不是异步调用?我基本上想检查配置文件是否存储在设备上,如果没有->推回到登录屏幕。但显然,对离子存储的调用花费的时间太长,并且在加载页面时,尚未解决 第页Javascript 离子3存储定时,javascript,angularjs,typescript,ionic-framework,Javascript,Angularjs,Typescript,Ionic Framework,我正在从存储器中加载一些json,并打算在页面html模板中显示信息。但是,当我这样做时,在进入页面时,我会收到错误,暗示信息(尚未)可用 我可能误解了这个概念,但是否可以对离子存储进行同步调用而不是异步调用?我基本上想检查配置文件是否存储在设备上,如果没有->推回到登录屏幕。但显然,对离子存储的调用花费的时间太长,并且在加载页面时,尚未解决 第页 private user:User; constructor(private storage: Storage) { storage.
private user:User;
constructor(private storage: Storage) {
storage.get('user').then(data => {
this.user = data;
});
}
page.html
<ion-content padding>
<div>
<p>Welcome <b>{{user.name}}</b></p>
</div>
</ion-content>
欢迎{{user.name}}
正如我所说,这将给我一个错误,user.name是未定义的。
当使用ngif指令等待承诺得到解决时,它是有效的。
但我想我误解了这个概念
<ion-content padding>
<div *ngIf="user">
<p>Welcome <b>{{user.name}}</b></p>
</div>
</ion-content>
欢迎{{user.name}}
那么,当加载/输入页面时,我如何调用离子存储并使数据可用呢?这只是因为从存储中获取用户需要一些时间 另一个避免不带*ng的错误的建议是:
private user:User = new User(); // Initialize the user property
constructor(private storage: Storage) {
storage.get('user').then(data => {
this.user = Object.assign(new User, data);
});
}
可能误解了这个概念,但是否有可能
对离子存储的同步调用而不是异步调用
这是一个异步操作,我认为你不能用同步的方式来完成。
无论哪种方式,使用*ngIf=“user”的解决方案都是一个很好的解决方案,您还可以添加以下内容
<div *ngIf="!user">
//Load a spinner, or a loading bar
</div>
//加载微调器或加载条