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

Vue将axios封装到外部JS文件 使用async/await调用返回undefined

问题原因

你封装的service/login.js中的goLogin方法缺少显式返回语句,async 函数无return时默认返回值为undefined,这是外层await调用拿到undefined的核心原因。

修复方案

提供两种修改方式,可根据编码习惯选择:

方式1:最小改动(保留原有.then/.catch写法)

直接返回整个axios请求链的结果即可,无需额外修改逻辑:

async goLogin(password){
  // 仅需在axios调用前增加return关键字
  return axios.post(appRoute+'user/login',{pwd:password})
          .then(data=>{
              var user = { token:data.data.results };
              return user})
          .catch(err=>{
              return {errorMessage:err.message}})
}

方式2:统一async/await写法(更易读)

去掉.then/.catch,改用try/catch包裹异步逻辑,代码逻辑更清晰:

async goLogin(password){
  try {
    const res = await axios.post(appRoute+'user/login',{pwd:password})
    return { token: res.data.results }
  } catch (err) {
    return { errorMessage: err.message }
  }
}

修改完成后,Vue页面中的调用逻辑无需调整,即可正常拿到result返回值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 07:06:13