为何无法通过async/await将Axios请求结果存入变量并访问?
问题分析与解决方法
1. 先修正明显的语法错误
你代码里的const url = my-url是错的,my-url作为字符串必须用单引号/双引号包裹,不然会被解析成变量运算,直接报错:
const url = 'my-url'; // 替换成你实际要请求的API地址
2. 核心问题:await不能在非async上下文里用
await关键字只能在async函数内部使用,你直接在全局作用域(或非async函数)里写let results = await getUser();会触发语法错误,代码根本跑不到这一步,自然访问不到results。
给你两种解决方式:
- 方式一:把调用逻辑放进
async函数async function main() { let results = await getUser(); console.log(results); // 在这里对results做后续操作 } main(); - 方式二:用Promise的
then方法处理返回值getUser().then(results => { console.log(results); // 在这里对results做后续操作 });
3. 额外优化:完善错误处理
当前getUser的catch块只打印错误,但请求失败时函数会返回undefined,可以根据需求补充返回值或抛出错误,方便调用方处理:
async function getUser() { try { const response = await axios.get(url); return response.data; } catch (error) { console.error(error); // 可选:返回默认值 return null; // 或者抛出错误让调用方自行处理 // throw error; } }
内容的提问来源于stack exchange,提问作者redditor
相关产品推荐
相关产品推荐

