You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

async函数中await获取axios返回值为undefined如何解决?

问题原因

你的问题既不是await也不是async的语法错误,核心问题是getPageData函数没有返回Promise对象,导致await拿到的是undefined:

  • 你在getPageData里调用了axios.get,但没有把这个axios返回的Promise return出去,函数执行完默认返回undefined,await等待undefined自然拿不到结果
  • 虽然你在.then()回调里return了result,但这个return属于回调函数的返回值,不是外层getPageData的返回值,不会被外层接收到

解决方法

方案1:直接返回axios请求的Promise

修改getPageData函数,在axios.get前面加return即可:

async function getPageData(page_num){
  let pageNum = page_num;
  console.log("page_num" , pageNum);
  let path = "https://......"
  // 新增return,把axios的Promise返回给调用方
  return axios.get(path).then(
    (response) => {
        var result = response.data;
        console.log(result);
        return result;
    },
    (error) => {
        console.log(error);
        // 错误场景建议抛出,方便外层try catch捕获
        throw error
    }
);
}

方案2:统一使用async/await语法,避免混合.then回调风格

代码可读性更高,更易维护:

async function getPageData(page_num){
  let pageNum = page_num;
  console.log("page_num" , pageNum);
  let path = "https://......"
  try {
    const response = await axios.get(path)
    const result = response.data
    console.log(result)
    return result
  } catch (error) {
    console.log(error)
    throw error
  }
}

两种方案修改后,外层的await getPageData(1)就能正常拿到返回的响应结果。

内容的提问来源于stack exchange,提问作者MaheemaPavithrani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:15:03