[英]Async function not working inside UseEffect Hook
I am creating an async function inside the useEffect callback.我正在 useEffect 回调中创建一个异步 function。 But because of some reason, every time component renders, I can only see the output from the first console.
但由于某种原因,每次组件渲染时,我只能从第一个控制台看到 output。 And execution control never goes inside the async function. Thus returning empty array at the end.
并且执行控制永远不会进入异步 function 内部。因此最后返回空数组。
const [targets, setTargets] = useState([]);
useEffect(() => {
console.log("Inside UseEffect"); //logs the output
(async () => {
var url = `https://xx.yy.zz/?param={"request_type":"query_osm_circle","lat":${region.latitude},"lng":${region.longitude},"radius":3,"limit":10}`;
try {
let response = await fetch(
url,
);
let responseJson = await response.json();
console.log(responseJson); //does not log the output
setTargets(responseJson);
} catch (error) {
console.error(error);
}
})
});
console.log(targets); //returns empty array
useEffect(() => {
console.log("Inside UseEffect"); //logs the output
(async () => {
var url = `https://xx.yy.zz/?param={"request_type":"query_osm_circle","lat":${region.latitude},"lng":${region.longitude},"radius":3,"limit":10}`;
try {
let response = await fetch(
url,
);
let responseJson = await response.json();
console.log(responseJson); //does not log the output
setTargets(responseJson);
} catch (error) {
console.error(error);
}
})()
},[]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.