MCPcopy Create free account
hub / github.com/QuarkGluonPlasma/react-course-code / useTimeout

Function useTimeout

ahooks-hook/src/useTimeout.ts:3–24  ·  view source on GitHub ↗
(fn: () => void, delay?: number)

Source from the content-addressed store, hash-verified

1import { useCallback, useEffect, useRef } from 'react';
2
3const useTimeout = (fn: () => void, delay?: number) => {
4
5 const fnRef = useRef<Function>(fn);
6
7 fnRef.current = fn;
8
9 const timerRef = useRef<number>();
10
11 const clear = useCallback(() => {
12 if (timerRef.current) {
13 clearTimeout(timerRef.current);
14 }
15 }, []);
16
17 useEffect(() => {
18 timerRef.current = setTimeout(fnRef.current, delay);
19
20 return clear;
21 }, [delay]);
22
23 return clear;
24};
25
26export default useTimeout;

Callers 1

App4.tsxFile · 0.85

Calls 1

useEffectFunction · 0.90

Tested by

no test coverage detected