出现此问题的原因是使用while循环时未正确等待异步函数的结果,导致返回undefined。
解决方法是使用递归调用来等待异步函数的结果,而不是使用while循环。以下是示例代码:
async function fetchData(url) { try { const response = await axios.get(url); return response.data; } catch (error) { console.error(error); } }
async function getData(url) { let data; try { const response = await fetchData(url); data = response.data; } catch (error) { console.error(error); return; } if (data.length === 0) { // 如果数据为空,则等待1000毫秒重试 await new Promise(resolve => setTimeout(resolve, 1000)); return getData(url); } else { return data; } }
const url = 'https://jsonplaceholder.typicode.com/posts'; getData(url).then(data => console.log(data));