2016-05-14 8 views
0

Ich baue eine Klasse, um Speicher in React Native zu behandeln und das async/await-Muster zu verwenden. Das getItem funktioniert, ich bin mir nicht sicher, ob ich das setItem asyncifizieren muss. Tu ich?ReactNative AsyncStorage in Kombination mit async/await. Ist "Warten" für setItem-Operationen erforderlich?

class StorageLayer { 

    static async getStorageKey(key) { 
    try{ 
     let value = await AsyncStorage.getItem(key); 
     return value; 
    } 
    catch(e){ 
     return null; 
    } 
    } 

    static setStorageKey(key, value) { 
    console.log("setStorageKey key ->", key, value); 

    return AsyncStorage.setItem(key, value); 
    } 


} 

vs:

... 
static async setStorageKey(key, value) { 
    console.log("setStorageKey key ->", key, value); 

    return AsyncStorage.setItem(key, value); 
} 
+0

Wenn 'setItem' bereits ein Versprechen zurückgibt, macht das keinen Unterschied. – Bergi

Antwort

0

Die Frage würde die Asynchron callatack sein. Wenn eine Ausnahme in setItem ausgelöst wurde, wäre setStorageKey nicht im Callstack, wenn Sie nicht erwarten verwenden.

Wenn das akzeptabel ist, kann hier abgewartet werden.

+0

Also ich: 'Lassen Sie Erfolg = erwarten AsyncStorage.setItem (Schlüssel, Wert);' Um es hinzuzufügen? Gleiches Muster? – Guy

+0

Sie müssen das Ergebnis nicht einer temporären Variablen zuweisen, Sie können einfach 'asyncStorage.setItem()' zurückgeben –

Verwandte Themen