Ionic platform.exitApp() 不保存 localStorage
Ionic platform.exitApp() not saves localStorage
当我使用 platform.exitApp()
时,我在执行退出之前对 localStorage
所做的更改没有保存。
以下是我的启动方式:
this.user.profileGetbyId(this.user.userdata.id)
.subscribe(res => {
if(res && res.success) {
localStorage.setItem('user', res.data);
this.user.userdata = res.data;
console.log(this.user.userdata);
this.platform.exitApp();
//temp decision
// setTimeout(() => {
// this.platform.exitApp();
// }, 500);
}
})
这样,在 exit()
启动之前,控制台显示我已经更新了用户,但是当我下次启动应用程序时,我拥有 exit()
之前的用户。
接下来我尝试的是使用 setTimeout()
延迟调用退出。使用此 timeout
用户可以正确保存。
如何在没有 setTimeout()
的情况下以正确的方式保持更改?
this.storage.set returns a promise, wait for it to resolve and do
exit.
这是代码
this.storage.set('user', res.data).then(data=>{
this.user.userdata = res.data;
this.platform.exitApp();
})
在localStorage中,在设置
之前使用JSON.stringify
localStorage.setItem("user", JSON.stringify(res.data));
要从 localStorage 获取值,请使用
JSON.parse(localStorage.getItem("user"))
this.storage.set()
returns 承诺并在设置键和值时解析。 (参见 Documentation)
所以你需要这样调用then
:
this.storage.set('user', res.data).then(data => {
this.user.userdata = res.data;
this.platform.exitApp();
}
当我使用 platform.exitApp()
时,我在执行退出之前对 localStorage
所做的更改没有保存。
以下是我的启动方式:
this.user.profileGetbyId(this.user.userdata.id)
.subscribe(res => {
if(res && res.success) {
localStorage.setItem('user', res.data);
this.user.userdata = res.data;
console.log(this.user.userdata);
this.platform.exitApp();
//temp decision
// setTimeout(() => {
// this.platform.exitApp();
// }, 500);
}
})
这样,在 exit()
启动之前,控制台显示我已经更新了用户,但是当我下次启动应用程序时,我拥有 exit()
之前的用户。
接下来我尝试的是使用 setTimeout()
延迟调用退出。使用此 timeout
用户可以正确保存。
如何在没有 setTimeout()
的情况下以正确的方式保持更改?
this.storage.set returns a promise, wait for it to resolve and do exit.
这是代码
this.storage.set('user', res.data).then(data=>{
this.user.userdata = res.data;
this.platform.exitApp();
})
在localStorage中,在设置
之前使用JSON.stringifylocalStorage.setItem("user", JSON.stringify(res.data));
要从 localStorage 获取值,请使用
JSON.parse(localStorage.getItem("user"))
this.storage.set()
returns 承诺并在设置键和值时解析。 (参见 Documentation)
所以你需要这样调用then
:
this.storage.set('user', res.data).then(data => {
this.user.userdata = res.data;
this.platform.exitApp();
}