import {watch} from 'vue'; import useAsyncFn from './useAsyncFn'; import {FunctionReturningPromise} from './misc/types'; export type {AsyncState, AsyncFnReturn} from './useAsyncFn'; export default function useAsync( fn: T, deps?: any[] ) { const [state, callback] = useAsyncFn(fn, { loading: true, }); if (deps) { watch(deps, () => { callback(); }, { immediate: true }); } else { callback(); } return state; }