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

2024-06-19

我试图将从 .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(使用前将#替换为@)

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

随机推荐