AsyncStorage 類似localStorage ,不過是異步的 返回Promise
/**
* AsyncStorage是一個簡單的、異步的、持久化的Key-Value存儲系統,
*/
import {AsyncStorage} from 'react-native';
class StorageUtil {
/**
* 根據key獲取json數值
* @param key
* @returns {Promise<TResult>}
*/
static get(key) {
return AsyncStorage.getItem(key)
.then(value => {
if (value && value !== '') {
const jsonValue = JSON.parse(value);
return jsonValue;
}
return null;
})
.catch(() => null);
}
/**
* 保存key對應的json數值
* @param key
* @param value
* @returns {Promise<string>}
*/
static save(key, value) {
return AsyncStorage.setItem(key, JSON.stringify(value));
}
/**
* 更新key對應的json數值
* @param key
* @param value
* @returns {Promise<TResult>|Promise.<TResult>|Promise<T>}
*/
static update(key, value) {
return AsyncStorage.get(key).then(item => {
value =
typeof value === 'string' ? value : Object.assign({}, item, value);
return AsyncStorage.setItem(key, JSON.stringify(value));
});
}
/**
* 刪除key對應json數值
* @param key
* @returns {Promise<string>}
*/
static deleteItem(key) {
return AsyncStorage.removeItem(key);
}
// 刪除選擇的json
static deleteOptional(array) {
array.map((item, index) => AsyncStorage.removeItem(item));
}
/**
* 刪除所有配置數據
* @returns {Promise<string>}
*/
static clear() {
return AsyncStorage.clear();
}
}
export default StorageUtil;