我似乎无法弄清楚为什么 useEffect 会这样做... Wait() 是一个睡眠异步函数,getData() 是一个 Axios 请求。
return wait().then(getData().then((resp) => {
console.log(resp)
}))
此代码记录了 resp 变量的有效值,但在 return 语句中返回 undefined。发生了什么事以及如何让它返回 resp 变量?
编辑***
const wait = React.useCallback( async() => {
if (loading === false) {
await sleep(4000);
} else if (loading === true){
await sleep(0);
} else {
await sleep(2000);
}
}, [loading])
const getData = React.useCallback(() => {
const value = Axios.post("http://localhost:3001/api/get-value",
{user: userProp}).then((response) => {
const recievedData = response.data;
const dataValue = recievedData.map((val) => {
return [val.value]
})
if (loading === true){
setLoading(false);
}
return parseInt(dataValue);
}).then((resp) => {
setMoisture(resp) // if I turn this off still no go.
return resp
})
return value
}, [userProp, loading])
const Data = React.useCallback(() => {
try {
return wait().then(getData)
} catch (error) {
setError(true);
return error;
}
}, [wait, getData])
React.useEffect(() => {
let isEffect = false
if (props.location.state !== undefined) {
Data().then((firstResponse) => {
if (!isEffect){
setMoisture(firstResponse)
}
})
}
return () => {
isEffect = true;
}
}, [props.location.state, Data, moisture]);
一只甜甜圈
相关分类