useAsync
异步函数hooks,方便数据处理和执行
安装
npm
pnpm
yarn
npm install @jelper/hooks
引入
import { useAsync } from '@jelper/hooks';
样例
基础用法
data: -
handleData: -
基础用法
API
参数 | 说明 | 类型 | 默认值 | 版本 |
---|---|---|---|---|
useAsync | 异步执行帮助hooks | UseAsync | -- |
Interface
interface Opt<T extends (p: any) => any, R> {
defParam?: Parameter<T>; // 默认参数
immediate?: boolean; // 是否立即执行 默认:false
format?: (p: ReturnType<T>) => R; // 格式化返回数据
catchParam?: boolean; // 是否合并返回值
onAbort?: (this: AbortSignal, ev: Event) => any; // 执行取消回调
}
type UseAsync<T extends (p: any, opt?: { signal: AbortController['signal'] }) => Promise<any>, R = any> = (
asyncFn: T,
opt: Opt<T, R> = defOpt
): [
R | undefined, // 返回数据
{
run: (runParam?: Partial<Parameter<T>>) => Promise<void>; // 执行方法
refresh: () => Promise<void>; // 使用上一次 参数 执行方法
loading: boolean; // 加载状态
error?: Error; // 异常数据
param: Partial<Parameter<T>>; // 当前结果参数
controller: AbortController|undefined; // AbortController实例可手动取消执行回调
}
]