缓存
启用缓存后,相同 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()。