Skip to content

API 参考

构造函数

typescript
new AsyncLoader<T, M = Record<string, any>>(
    loader: IAsyncLoader<T, M> | IAsyncLoader<T, M>[],
    options?: AsyncLoaderOptions<T, M>
)
  • loader:底层加载函数(单个数组),通过 args.abortSignal 接收合并后的中止信号;可返回 Promise<T> 或同步值 T。多 loader 时配合 multiLoaderStrategy 编排(见 多加载器)。
  • options:构造选项,详见 配置选项

实例方法

方法说明
get(args?)获取加载结果;首次/缓存失效/上次失败时自动触发加载。args 透传给内部 signal(timeout等待超时,与 options.timeout 加载超时语义不同)
load()触发一次加载(通常无需手动调用,get() 会自动触发)
refresh(args?)强制重新加载,忽略有效缓存;若有进行中加载先中止,再重新加载并返回新结果。args 透传给内部 signal
invalidate()标记数据失效:清除缓存项并重置已完成的信号,使下次 get() 重新加载。不立即触发加载。与 clear() 不同,无缓存(cache=0)时也生效
abort()中止加载,穿透到底层请求;处于重试等待中时一并终止
clear()清除当前实例的缓存项
clearAll()清空共享存储中的全部缓存项
isPending()是否正在加载中(含重试过程),以 loading 为准
isFulfilled()是否加载成功(含 defaultValue 兜底)
isRejected()是否加载出错(业务错误 / 超时 / abort)

静态方法

方法说明
AsyncLoader.resolve(result)创建预置 fulfilled 实例:get() 直接返回 result,不触发加载(详见 静态方法
AsyncLoader.reject(error)创建预置 rejected 实例:get() 直接抛出 error,不触发加载(详见 静态方法
AsyncLoader.clearLoaderCache()清空 multiplex 进行中实例缓存表;主要用于共享 hash 的测试用例间隔离

实例属性

属性说明
signal内部承载结果的 IAsyncSignal,可观察状态与 result / error
loading是否正在加载(含重试过程)
loader底层加载函数(单个或数组,构造函数第一个参数)
hash缓存/复用键(显式提供或自动生成)
options合并默认值后的构造选项

错误类型

触发场景错误类型
超时最终失败(重试耗尽或未启用重试)TimeoutError
主动 abort() / 外部 abortSignalAbortError
业务错误透传原始错误

基于 MIT 许可协议发布