React Native AsyncStorage本地存储工具类
程序员文章站
2022-07-06 20:31:18
利用react-native组件asyncstorage,通过promise,保存本地数据,具体内容如下
import {asyncstorage} from...
利用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) } return promise.resolve(true); } else { return promise.reject({"msg": "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); // 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; } /** * 获取所有已存储 */ static async getallkeys() { let result=true; try { result = await asyncstorage.getallkeys(); } catch (err) { return promise.reject(err) } return result; } }
外界调用
保存
storageutil.savejsonobject(key_local_user_info, user);
读取
storageutil.getjsonobject(key_local_user_info).then(data=>{console.log(data))}
清除
storageutil.remove(key_local_user_info)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: HTML5交互动画开发历次作业(二)