Reputation: 1061
I've implemented Storage for Ionic (don't know if it's something new to store values).
I've created a service that stores an object
(it works, because I've console.logged() it), but when I want to get()
it's returning me undefined
when I use the same key, even when the console.log()
from the get()
method prints what I want...
getInfo(keystorage): string {
var val = null;
this.storage.get(keystorage).then((profile) => {
val = JSON.parse(profile);
console.log(val["info"]); //returning what I want
return val["info"];
})
.catch((err: any) => {
return 'catchhhh';
});
return val;
}
It's returning null
now because I've added var vall = null
and looks like it doesn't change anything...
I store it like this:
saveInfo(usr){
if(usr==null) return;
var usertostore = {"id": currentUser["id"], "info":currentUser["info"]};
this.storage.set("userLoged",JSON.stringify(usertostore ))
}
I'm trying to get the info like this:
var userInfo = this.storageService.getInfo('myKey');
What am I missing?
Upvotes: 2
Views: 1306
Reputation: 210
This happen because the storage method is asynchronous and the value is null when it is returned.
Can you try this way?
getInfo(keystorage) {
return this.storage.get(keystorage);
}
saveInfo(usr){
if(usr==null) return;
var usertostore = {"id": 1234, "info":"fdsgf"};
this.storage.set("userLoged",JSON.stringify(usertostore ))
}
and get the info:
getInfo('userLoged').then((res) => {
var userInfo = res;
});
Upvotes: 1