MCPcopy
hub / github.com/alibaba/hooks / useAsyncEffect

Function useAsyncEffect

packages/hooks/src/useAsyncEffect/index.ts:11–35  ·  view source on GitHub ↗
(
  effect: () => AsyncGenerator<void, void, void> | Promise<void>,
  deps?: DependencyList,
)

Source from the content-addressed store, hash-verified

9}
10
11function useAsyncEffect(
12 effect: () => AsyncGenerator<void, void, void> | Promise<void>,
13 deps?: DependencyList,
14) {
15 useEffect(() => {
16 const e = effect();
17 let cancelled = false;
18 async function execute() {
19 if (isAsyncGenerator(e)) {
20 while (true) {
21 const result = await e.next();
22 if (result.done || cancelled) {
23 break;
24 }
25 }
26 } else {
27 await e;
28 }
29 }
30 execute();
31 return () => {
32 cancelled = true;
33 };
34 }, deps);
35}
36
37export default useAsyncEffect;

Callers 3

demo1.tsxFile · 0.85
demo2.tsxFile · 0.85
index.spec.tsFile · 0.85

Calls 1

executeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…