在 React 的 useEffect 中怎么使用 async、await

2022-10-29 21:21:56
useEffect 中的第一个回调参数返回的是一个 clean-up 函数,所以不能返回 Promise 对象,也不能直接使用 async、await,否则会报错。 可以使用如下方法解决: ``` useEffect(()=>{ // 使用自执行函数 IIFE (async function fn(){ await otherFn(); })() }, []) ``` 换种写法,在 useEffect 的回调参数内部定义一个 async 函数 ``` useEffect(()=>{ const fn = async () => { await otherFn() } fn() }, []) ``` 或都干脆在 useEffect 外部定义 async 函数,在回调参数中去执行: ``` const fn = async () => { await otherFn() } useEffect(()=>{ fn() }, []) ```