Files
training/website/src/services/cache.js
T
Pine 97054a9699 feat: 培训业务 Web(Vite+React)
- user 端:课程/活动/报名/测评/政策/调研
- 后端已并入 server-core/app/training,/api/* 走 opc.pinesound.cn
2026-08-23 22:32:42 +08:00

20 lines
578 B
JavaScript

/**
* 短缓存:内存 Map,按 key 缓存异步结果(TTL 毫秒)。
* 用于列表类接口(活动/题目/配置),减少重复请求与"空→内容"跳变。
* 仅前端缓存,不影响后端数据。
*/
const store = new Map();
export async function cached(key, ttl, fn) {
const hit = store.get(key);
if (hit && Date.now() - hit.t < ttl) return hit.data;
const data = await fn();
store.set(key, { t: Date.now(), data });
return data;
}
/** 清空全部缓存(登出/主动刷新时用) */
export function clearCache() {
store.clear();
}