Categories

Hook10

useTimeout

Executes a function after a given number of milliseconds.

Contributed by @itsbrunodev

typescript
import { useEffect, useRef } from "react";
 
function useTimeout(callback: () => void, delay: number): void {
  const savedCallback = useRef(callback);
 
  useEffect(() => {
    savedCallback.current = callback;
  }, [callback]);
 
  useEffect(() => {
    if (delay === null) return;
    const id = setTimeout(() => savedCallback.current(), delay);
    return () => clearTimeout(id);
  }, [delay]);
}
typescript
useTimeout(() => {
  console.log("Executed after 1 second");
}, 1000);
GitHubEdit on GitHub