• A custom React hook that performs an asynchronous side effect.

    Parameters

    • cb: AsyncEffectCallback

      The callback function that performs the side effect. It receives a function that returns a boolean indicating whether the component is currently mounted. The callback should return a promise that resolves to a cleanup function or void.

    • Optional deps: DependencyList

      An array of dependencies. The side effect will run whenever one of the dependencies changes. If no array is provided, the side effect will run only once (similar to componentDidMount and componentWillUnmount lifecycle methods in class components).

    Returns void

    Example

    useAsyncEffect(async (isMounted) => {
    const response = await fetch('/api/data');
    const data = await response.json();

    if (!isMounted()) return;
    // ... use data
    return () => {
    // ... cleanup
    };
    }, []);