You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.1 KiB
60 lines
1.1 KiB
/**
|
|
* 缓存管理类
|
|
*/
|
|
class Cache {
|
|
// 写入
|
|
set(key, value = "", expire = 0) {
|
|
let ttl = expire > 0 ? Date.now() + expire * 1000 : 0;
|
|
return uni.setStorageSync(key, {
|
|
value,
|
|
ttl,
|
|
});
|
|
}
|
|
|
|
// 读取
|
|
get(key, defalut = null) {
|
|
const data = uni.getStorageSync(key);
|
|
if (data && typeof data === "object") {
|
|
// 没有有效期
|
|
if (data.ttl === 0) {
|
|
return data.value;
|
|
}
|
|
return Date.now() > data.ttl ? defalut : data.value;
|
|
}
|
|
return defalut;
|
|
}
|
|
|
|
// 删除
|
|
delete(key) {
|
|
return uni.removeStorageSync(key);
|
|
}
|
|
|
|
// 清空
|
|
clear() {
|
|
return uni.clearStorageSync();
|
|
}
|
|
}
|
|
|
|
const cacheInstance = new Cache();
|
|
export default cacheInstance;
|
|
|
|
/**
|
|
* 缓存操作(获取、删除、设置)
|
|
* @param name string
|
|
* @param value any
|
|
* @param expire int 有效时间,秒
|
|
*/
|
|
export function cache(name = null, value = "", expire = 0) {
|
|
if (name === null) {
|
|
return cacheInstance;
|
|
}
|
|
|
|
if (value === "") {
|
|
return cacheInstance.get(name);
|
|
} else if (value === null) {
|
|
return cacheInstance.delete(name);
|
|
} else {
|
|
return cacheInstance.set(name, value, expire);
|
|
}
|
|
}
|