当前位置: 移动技术网 > IT编程>开发语言>JavaScript > React Native AsyncStorage本地存储工具类

React Native AsyncStorage本地存储工具类

2017年12月12日  | 移动技术网IT编程  | 我要评论
利用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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网