将localforage.getItem中的值赋给全局变量 - ionic2

时间:2016-10-14 20:14:29

标签: angular typescript ionic2 localforage

我的localforage存在问题,localforage无法在成功回调中设置全局变量,但是当console.log显示值时。

Localforage数据:

Key: login
Value: [{"token": "bla bla bla", "member_id":1}]

代码

public login_data: any;
getMemberData() {
  localforage.getItem("login").then(function(value){
    this.login_data = value[0];
  });
  console.log(this.login_data);
} 

输出

undefined

我想要的只是将它变成一个全局变量。我可以轻松使用它,例如:

this.login_data.member_id
or
this.login_data.token

我试过的一些方法与我的期望不符。 我尝试过:

Assign value from successful promise resolve to external variable

how to assign the returned value of a promise to a variable?

setting a variable to get return from call back function using promise

Assign value from then function to a variable promise

[注意] 我使用Ionic 2,AngularJS 2,LocalForage

感谢

1 个答案:

答案 0 :(得分:0)

对promise进行评估,然后设置this.login_data = value[0];。如果在promise中更改控制台输出,请查看它是否正确显示输出。

localforage.getItem("login").then(function(value){
this.login_data = value[0];
console.log(this.login_data);
 });

更新 - 请分享输出

ngOnInit() {
  this.login_data= "My login details";
  console.log('Init to empty : ' );
  console.log(this.login_data);
  console.log('--------');
  this.getMemberData();       
 }


getMemberData() {
 localforage.getItem("login").then(function(value){
 console.log(value[0]);
 console.log('My Init login data still is -');
 console.log(this.login_data);
 console.log('--------');
 this.login_data = value[0];
 console.log('After fetch -');
 console.log(this.login_data);
 console.log('--------');
 });  
}