ReactNative AsyncStorage结合异步/等待。 setItem操作需要“等待”吗?

问题描述:

我正在构建一个类来处理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

问题将是异步callatack。如果在setItem中抛出异常,如果不使用await,则setStorageKey将不在调用堆栈中。

如果可以接受,可以在这里省略等待。

+0

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

+0

你不必把结果赋给一个临时变量,你可以简单地'返回await AsyncStorage.setItem()' –