typescript - Lagring returnerar inte sträng ionic
Jag har implementerat Storage för Ionic (vet inte om det är något nytt för att lagra värden).
Jag har skapat en tjänst som lagrar ett object (det fungerar, eftersom jag har console.logged() det), men när jag vill get() returnerar det undefined när jag använder samma nyckel, även när console.log() från get()-metoden skriver ut det jag vill...
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;
}
Det returnerar null nu eftersom jag har lagt till var vall=null och det verkar som om det inte förändrar något...
Jag förvarar det så här:
saveInfo(usr){
if(usr==null) return;
var usertostore = {"id": currentUser["id"], "info":currentUser["info"]};
this.storage.set("userLoged",JSON.stringify(usertostore ))
}
Jag försöker få informationen så här:
var userInfo = this.storageService.getInfo('myKey');
Vad missar jag?
Svar #1
Detta händer eftersom lagringsmetoden är asynkron och värdet är null när det returneras.
Kan du prova på det här sättet?
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 ))
}
och få informationen:
getInfo('userLoged').then((res) => {
var userInfo = res;
});
