ionic 2本地存储无法将检索到的值设置为变量

基因

我试图将从.get函数检索的值设置为在外部声明的变量,但无法这样做。

var dt;
//retrieve
this.local.get('didTutorial').then((value) => {
  alert(value);
   dt = value;
})

console.log("Local Storage value: "+dt);

我能够为警报获取“ true”,但对于在函数外部打印的console.log却获得“ undefined”。

在此处输入图片说明 在此处输入图片说明

一种解决方法是,我可以将所有剩余的代码放入“ .then函数”中,但这将非常混乱。

更新(解决方案):

根据ionic api(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')

您将能够检索它,而不必将所有内容都放入回调方法中。

史蒂文·佩特里克(Steven Petryk)

在这种情况下,从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个或多个参数,并且在传递它们而不是将它们串联时会更好地格式化它们。只是一个专业提示。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章