J'ai une application mobile Cordova qui stocke des données hors ligne dans localStorage. Récemment, les utilisateurs ont commencé à recevoir l'erreur QUOTA_EXCEEDED_ERR parce que localStorage est limité à 5 Mo. J'ai décidé d'utiliser le framework "localForage", mais j'ai remarqué qu'il fonctionne de manière asynchrone. Comme je ne veux pas réécrire toutes mes applications complexes en fonctions de rappel, je voulais savoir s'il existait un moyen d'utiliser "localForage" de manière synchrone (en attendant que la fonction getItem renvoie une valeur).
Voici un exemple de code de ce que j'essaie de faire :
localforage.setItem('testKey', 'testValue', function() {
var value = getValue('testKey');
console.log(value); // here I get undefined, but I want to get a value
});
function getValue(key) { // I want this function to return value
var result;
localforage.getItem(key, function(value) {
result = value;
});
return result;
}
Je veux que getValue() renvoie une valeur sans modifier aucun autre code.