Skip to content

缓存

启用缓存后,相同 hash 的结果在有效期内复用,过期后自动重新加载。

基本用法

typescript
const loader = new AsyncLoader(
    (args) => fetch("/api/data", { signal: args.abortSignal }).then((r) => r.json()),
    { cache: 60_000, hash: "data" }, // 缓存 60 秒
);

await loader.get(); // 首次加载并写入缓存
await loader.get(); // 命中缓存,不调用底层

loader.clear(); // 清除当前实例的缓存项
loader.clearAll(); // 清除所有缓存(共享存储)

关键点

  • cache 为缓存有效期(毫秒)。=0 表示不缓存(默认),>0 启用缓存。
  • hash 是缓存键。cache>0 但未提供 hash 时会自动生成实例级 hash。
  • 缓存命中时不会触发 onPending / onFulfilled 回调。
  • storage 选项可替换缓存后端,默认为 MapStorage

清理缓存

方法说明
clear()清除当前实例的缓存项
clearAll()清空共享存储中的全部缓存项

与失效的区别

clear() 仅在启用缓存时有意义;若想在无缓存时也标记数据失效,请使用 刷新与失效 中的 invalidate()

基于 MIT 许可协议发布