刷新与失效
refresh() 强制重新加载(忽略有效缓存);invalidate() 标记数据失效,下次 get() 重新加载。
基本用法
typescript
const loader = new AsyncLoader(fn, { cache: 60_000, hash: "data" });
await loader.get();
await loader.refresh(); // 立即强制重载,返回新结果(若有进行中加载先中止)
loader.invalidate(); // 标记失效;下次 get() 才重新加载
await loader.get(); // 重新加载方法对比
| 方法 | 行为 | 是否立即加载 | 无缓存时是否生效 |
|---|---|---|---|
refresh(args?) | 清除缓存并立即重新加载;若有进行中加载先中止。返回新结果 | ✅ 立即 | ✅ |
invalidate() | 清除缓存项并重置已完成的信号,使下次 get() 重新加载 | ❌ 否(由下次 get() 触发) | ✅ |
clear() | 清除当前实例的缓存项 | ❌ 否 | ❌ 仅缓存场景有意义 |
invalidate 的优势
invalidate() 与 clear() 不同的是:它在无缓存(cache=0)时也生效——因为它会重置已完成的信号,从而让下次 get() 重新加载。