我试图将从 .get 函数检索到的值设置为在外部声明的变量,但无法这样做。
var dt;
//retrieve
this.local.get('didTutorial').then((value) => {
alert(value);
dt = value;
})
console.log("Local Storage value: "+dt);
我能够为警报获取“true”,但为在函数外部打印的 console.log 获取“未定义”。
一种解决方法是我可以将所有剩余的代码放入“.then 函数”中,但这会非常混乱。
更新(解决方案):
根据 ionic api (http://ionicframework.com/docs/v2/api/platform/storage/LocalStorage/ http://ionicframework.com/docs/v2/api/platform/storage/LocalStorage/) ,他们使用 .get 来检索值。
由于使用 Promise 有其自身的局限性,因此可以使用以下内容:
constructor(navController) {
this.navController = navController;
this.local = new Storage(LocalStorage);
}
和 getItem 函数,
localStorage.getItem('didTutorial')
您将能够检索它,而无需将所有内容放入回调方法中。
在这种情况下,从 localStorage 包装器读取是异步的,这意味着回调传递给this.local.get
被叫到after你的电话console.log
。尝试放置console.log
inside您的回调;那么它应该可以工作:
// retrieve
this.local.get('didTutorial').then((value) => {
alert(value)
var dt = value
console.log("Local Storage value:", dt)
})
另外,你会注意到我改变了你的console.log
调用参数。那是因为console.log
接受 1 个或多个参数,并且当您传递它们而不是连接它们时,它们的格式会更好。只是一个专业提示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)