react-use/src/useAsync.ts
2019-05-31 13:04:25 -04:00

20 lines
463 B
TypeScript

import { DependencyList, useEffect } from 'react';
import useAsyncFn from './useAsyncFn';
export { AsyncState, AsyncFn } from './useAsyncFn';
export default function useAsync<Result = any, Args extends any[] = any[]>(
fn: (...args: Args | []) => Promise<Result>,
deps: DependencyList = []
) {
const [state, callback] = useAsyncFn<Result, Args>(fn, deps, {
loading: true,
});
useEffect(() => {
callback();
}, [callback]);
return state;
}