我的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
感谢
答案 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('--------');
});
}