typescript - Úložiště nevrací řetězec v Ionic
Implementoval jsem Storage pro Ionic (nevím, jestli je to něco nového pro ukládání hodnot).
Vytvořil jsem službu, která ukládá object (funguje to, protože jsem ho vypsal pomocí console.logged()), ale když ho chci get(), vrací mi undefined, když použiji stejný klíč, i když console.log() z metody get() vytiskne to, co chci...
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;
}
Teď vrací null, protože jsem přidal var vall=null a vypadá to, že to nic nemění...
Ukládám to takto:
saveInfo(usr){
if(usr==null) return;
var usertostore = {"id": currentUser["id"], "info":currentUser["info"]};
this.storage.set("userLoged",JSON.stringify(usertostore ))
}
Snažím se získat informace takto:
var userInfo = this.storageService.getInfo('myKey');
Co mi chybí?
Odpověď č. 1
To se stane, protože způsob ukládání je asynchronní a hodnota je nulová, když je vrácena.
Můžeš to zkusit tímto způsobem?
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 ))
}
a získat informace:
getInfo('userLoged').then((res) => {
var userInfo = res;
});
