Skip to main content

useAsync

异步函数hooks,方便数据处理和执行

安装

npm install @jelper/hooks

引入

import { useAsync } from '@jelper/hooks';

样例

基础用法

data: -

handleData: -

API

参数说明类型默认值版本
useAsync异步执行帮助hooksUseAsync--

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实例可手动取消执行回调
  }
]