在 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()
}, [])
```