import config from '../config/index' export class Cache { constructor() { this.radix = 1000 // 如果该值为 1000 则是毫秒级单位,1 则是秒级单位 } /** * 增加数据 * @param {*} key 键值 * @param {*} value 键名 * @param {*} duration 有效期,0永久有效 */ setItem(key, value, duration) { let data = { value: value, expiryTime: !duration || isNaN(duration) ? 0 : Date.parse(new Date()) + parseInt(duration, 10) * this.radix } try { uni.setStorageSync(`${config.storePrefix}${key}`, JSON.stringify(data)) } catch (e) { // error } } /** * 查询数据 * @param {*} key 键值 */ getItem(key) { try { const data = uni.getStorageSync(`${config.storePrefix}${key}`) if (data) { if (!data || data === 'null') { return null } let now = Date.parse(new Date()) let obj try { obj = JSON.parse(data) } catch (e) { return null } if (obj.expiryTime === 0 || obj.expiryTime > now) { return obj.value } return null } } catch (e) { // error } } /** * 删除数据 * @param {*} key 键值 */ removeItem(key) { try { uni.removeStorageSync(`${config.storePrefix}${key}`) } catch (e) { // error } } /** * 清空数据 */ clear() { try { uni.clearStorageSync() } catch (e) { // error } } }