2016-05-14 212 views
0

我正在構建一個類來處理React Native中的存儲並希望使用async/await模式。 getItem的作品,我不知道是否需要異化setItem。我呢?ReactNative AsyncStorage結合異步/等待。 setItem操作需要「等待」嗎?

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

如果'setItem'已經返回一個promise,這裏沒有什麼區別。 – Bergi

回答

0

問題將是異步callatack。如果在setItem中拋出異常,如果不使用await,則setStorageKey將不在調用堆棧中。

如果可以接受,可以在這裏省略等待。

+0

我也是如此: 'let success = await AsyncStorage.setItem(key,value);' 要添加它嗎?相同的模式? – Guy

+0

你不必把結果賦給一個臨時變量,你可以簡單地'返回await AsyncStorage.setItem()' –