diff --git a/packages/hooks/src/useLockFn/index.ts b/packages/hooks/src/useLockFn/index.ts index 5ce96fba40..a1831102a7 100644 --- a/packages/hooks/src/useLockFn/index.ts +++ b/packages/hooks/src/useLockFn/index.ts @@ -1,23 +1,20 @@ import { useRef, useCallback } from 'react'; - +import useMemoizedFn from '../useMemoizedFn'; function useLockFn

(fn: (...args: P) => Promise) { const lockRef = useRef(false); - return useCallback( - async (...args: P) => { - if (lockRef.current) return; - lockRef.current = true; - try { - const ret = await fn(...args); - lockRef.current = false; - return ret; - } catch (e) { - lockRef.current = false; - throw e; - } - }, - [fn], - ); + return useMemoizedFn(async (...args: P) => { + if (lockRef.current) return; + lockRef.current = true; + try { + const ret = await fn(...args); + lockRef.current = false; + return ret; + } catch (e) { + lockRef.current = false; + throw e; + } + }); } export default useLockFn;