离子 2 本地存储无法将检索到的值设置为变量
ionic 2 local storage unable to set retrieved value to variable
我正在尝试将从 .get 函数检索到的值设置为在外部声明但无法这样做的变量。
var dt;
//retrieve
this.local.get('didTutorial').then((value) => {
alert(value);
dt = value;
})
console.log("Local Storage value: "+dt);
我能够得到 "true" 的警报,但是得到 "undefined" 的 console.log 是在函数之外打印的。
一种解决方法是我可以将所有剩余代码放入“.then 函数”,但这会非常混乱。
更新(解决方案):
根据 ionic api (http://ionicframework.com/docs/v2/api/platform/storage/LocalStorage/) ,他们使用 .get 来检索值。
由于使用 promises 有其自身的局限性,因此请使用以下内容:
constructor(navController) {
this.navController = navController;
this.local = new Storage(LocalStorage);
}
和getItem函数,
localStorage.getItem('didTutorial')
您将能够检索它,而无需将所有内容都放入回调方法中。
在这种情况下,从您的 localStorage 包装器读取是异步的,这意味着传递给 this.local.get
的回调在您调用 console.log
之后 被调用。尝试将 console.log
放在 回调中;它应该可以工作:
// retrieve
this.local.get('didTutorial').then((value) => {
alert(value)
var dt = value
console.log("Local Storage value:", dt)
})
此外,您会注意到我更改了您的 console.log
调用参数。那是因为 console.log
接受 1 个或多个参数,并且在传递它们而不是连接它们时更好地格式化它们。只是一个专业提示。
我正在尝试将从 .get 函数检索到的值设置为在外部声明但无法这样做的变量。
var dt;
//retrieve
this.local.get('didTutorial').then((value) => {
alert(value);
dt = value;
})
console.log("Local Storage value: "+dt);
我能够得到 "true" 的警报,但是得到 "undefined" 的 console.log 是在函数之外打印的。
一种解决方法是我可以将所有剩余代码放入“.then 函数”,但这会非常混乱。
更新(解决方案):
根据 ionic api (http://ionicframework.com/docs/v2/api/platform/storage/LocalStorage/) ,他们使用 .get 来检索值。
由于使用 promises 有其自身的局限性,因此请使用以下内容:
constructor(navController) {
this.navController = navController;
this.local = new Storage(LocalStorage);
}
和getItem函数,
localStorage.getItem('didTutorial')
您将能够检索它,而无需将所有内容都放入回调方法中。
在这种情况下,从您的 localStorage 包装器读取是异步的,这意味着传递给 this.local.get
的回调在您调用 console.log
之后 被调用。尝试将 console.log
放在 回调中;它应该可以工作:
// retrieve
this.local.get('didTutorial').then((value) => {
alert(value)
var dt = value
console.log("Local Storage value:", dt)
})
此外,您会注意到我更改了您的 console.log
调用参数。那是因为 console.log
接受 1 个或多个参数,并且在传递它们而不是连接它们时更好地格式化它们。只是一个专业提示。