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);
}
答
问题将是异步callatack。如果在setItem
中抛出异常,如果不使用await,则setStorageKey
将不在调用堆栈中。
如果可以接受,可以在这里省略等待。
+0
我也是如此: 'let success = await AsyncStorage.setItem(key,value);' 要添加它吗?相同的模式? – Guy
+0
你不必把结果赋给一个临时变量,你可以简单地'返回await AsyncStorage.setItem()' –
如果'setItem'已经返回一个promise,这里没有什么区别。 – Bergi