React Native AsyncStorage本地存储工具类

网友投稿 474 2023-03-23


React Native AsyncStorage本地存储工具类

利用react-native组件AsyncStorage,通过promise,保存本地数据,具体内容如下

import {AsyncStorage} from 'react-native';

export default class StorageUtil {

/**

* 保存一个json对象

* @param key

* @param value

* @param callback

*/

static async saveJsonObject(key, value) {

return await this.saveString(key, JSON.stringify(value));

}

/**

* 获取一个Json对象

* @param key

* @param defaultObject

*/

static async getJsonObject(key, defaultObject) {

let result=null;

try{

result=await this.getString(key,null);

result=await JSON.parse(result);

}catch (err){

if(defaultObject){

return Promise.resolve(defaultObject);

}else{

return Promise.reject(err);

}

}

return result;

}

/**

* 保存一个值

* @param key

* @param value

*/

static async saveString(key, value) {

if (key != null && value != null) {

//Key 与Value 都不为空

try {

await AsyncStorage.setItem(key, value)

} catch (err) {

return Promise.reject(err)

}

rethttp://urn Promise.resolve(true);

} else {

return Promise.reject({"RwlBUvjGymsg": "Key and value can not be null"});

}

}

/**

* 获取一个值

* @param key

* @param defaultValue

*/

static async getString(key, defaultValue) {

let result = null;

let noDataError = {"msg": "No value found !"};

if (key != null) {

result = await AsyncStorage.getItem(key);

// http://console.log('get string result',result,defaultValue);

return result ? result : defaultValue!=null ? defaultValue : Promise.reject(noDataError);

} else {

if (defaultValue) {

return Promise.resolve(defaultValue);

} else {

return Promise.reject(noDataError);

}

}

}

/**

* 移除一个值

* @param key

*/

static async remove(key) {

let result = true;

try {

result = await AsyncStorage.removeItem(key);

} catch (err) {

return Promise.reject(err)

}

return result;

}

/**

* 获取所RwlBUvjGy有已存储

*/

static async getAllKeys() {

let result=true;

try {

result = await AsyncStorage.getAllKeys();

} catch (err) {

return Promise.reject(err)

}

return result;

}

}

外界调用

保存

RwlBUvjGy

StorageUtil.saveJsonObject(KEY_LOCAL_USER_INFO, user);

读取

StorageUtil.getJsonObject(KEY_LOCAL_USER_INFO).then(data=>{console.log(data))}

清除

StorageUtil.remove(KEY_LOCAL_USER_INFO)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:React Native时间转换格式工具类分享
下一篇:Java源码解析之object类
相关文章

 发表评论

暂时没有评论,来抢沙发吧~