| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /**
- * 公共存储库
- * @邠心vbe on 2021/04/20
- */
- import AsyncStorage from "@react-native-async-storage/async-storage"
- import app from '../../app.json';
- const DEBUG = app.debug && !app.product;
- /**
- * 通过key更新存储内容(内容必须为字符串或数字)
- * @param {*} key 要存储的字段名
- * @param {*} value 要存储的数据
- */
- export const setStorage = (key, value) => {
- AsyncStorage.setItem(key, value).then(res => {
- if (DEBUG) console.log('setStorage-' + key, res ? res : 'success');
- }).catch(err => {
- if (DEBUG) console.warn('setStorage-' + key, err);
- });
- }
- /**
- * 通过key更新存储内容(内容必须为json对象)
- * @param {*} key 要存储的字段名
- * @param {*} json 要存储的json数据
- */
- export const setStorageJson = (key, json) => {
- AsyncStorage.setItem(key, JSON.stringify(json)).then(res => {
- if (DEBUG) console.log('setStorageJson-' + key, res ? res : 'success');
- }).catch(err => {
- if (DEBUG) console.warn('setStorageJson-' + key, err);
- });
- }
- /**
- * 通过key获取存储内容
- * @param {*} key 存储的字段名
- * @returns 返回Promise用来获取数据
- */
- export const getStorage = (key) => {
- return AsyncStorage.getItem(key);
- }
- /**
- * 通过key获取存储内容
- * (同步方法,需使用async和await调用)
- * @param {*} key 存储的字段名
- * @returns 存储的数据(内容为字符串或数字)
- */
- export const getStorageSync = async (key) => {
- const result = await AsyncStorage.getItem(key);
- return result;
- }
- /**
- * 通过key获取存储的json数据
- * (同步方法,需使用async和await调用)
- * @param {*} key 存储的字段名
- * @returns 存储的数据(自动转化为json对象)
- */
- export const getStorageJsonSync = async (key) => {
- const result = await AsyncStorage.getItem(key);
- return result ? JSON.parse(result) : null;
- }
- export default storage = {
- getStorage: getStorage,
- getStorageSync: getStorageSync,
- getStorageJsonSync: getStorageJsonSync,
- setStorage: setStorage,
- setStorageJson: setStorageJson
- }
|