useAsyncEffect

React useEffect with async await support. Note it don't support generator function.

Usage

import { useAsyncEffect } from "@reactuses/core";
import { useState } from "react";

const Demo = () => {
  const [data, setData] = useState(0);

  useAsyncEffect(
    async () => {
      const result = await new Promise<number>((resolve) => {
        setTimeout(() => {
          resolve(200);
        }, 5000);
      });
      setData(result);
    },
    () => {},
    []
  );
  return <div>data: {data}</div>;
};

Example

data: 0

Type Declarations

export default function useAsyncEffect<T extends void>(
  effect: () => Promise<T> | T,
  cleanup?: typeof effect,
  deps?: DependencyList
): void