@gdjiami/hooks
Version:
react hooks for mygzb.com
25 lines (24 loc) • 1.54 kB
TypeScript
export interface Res<T, S> {
loading: boolean;
error?: Error;
setError: (v?: Error) => void;
setLoading: (v: boolean) => void;
value?: S;
setValue: (v: S) => void;
call: T;
reset: () => void;
}
export interface UsePromiseOptions {
/**
* skip execution when previous promise has not ended. default is true
*/
skipOnLoading?: boolean;
}
declare function usePromise<T>(action: () => Promise<T>, option?: UsePromiseOptions): Res<() => Promise<T>, T>;
declare function usePromise<T, A>(action: (arg0: A) => Promise<T>, option?: UsePromiseOptions): Res<(arg0: A) => Promise<T>, T>;
declare function usePromise<T, A, B>(action: (arg0: A, arg1: B) => Promise<T>, option?: UsePromiseOptions): Res<(arg0: A, arg1: B) => Promise<T>, T>;
declare function usePromise<T, A, B, C>(action: (arg0: A, arg1: B, arg2: C) => Promise<T>, option?: UsePromiseOptions): Res<(arg0: A, arg1: B, arg2: C) => Promise<T>, T>;
declare function usePromise<T, A, B, C, D>(action: (arg0: A, arg1: B, arg2: C, arg3: D) => Promise<T>, option?: UsePromiseOptions): Res<(arg0: A, arg1: B, arg2: C, arg3: D) => Promise<T>, T>;
declare function usePromise<T, A, B, C, D, E>(action: (arg0: A, arg1: B, arg2: C, arg3: D, arg4: E) => Promise<T>, option?: UsePromiseOptions): Res<(arg0: A, arg1: B, arg2: C, arg3: D, arg4: E) => Promise<T>, T>;
declare function usePromise(action: (...args: any[]) => Promise<any>, option?: UsePromiseOptions): Res<(...args: any) => Promise<any>, any>;
export default usePromise;