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

React中Axios请求函数RuoloOnline返回undefined问题求助

问题原因

你的RuoloOnline函数没有返回axios发起的异步请求Promise,函数内部then回调里的return只是回调函数的返回值,并不会成为整个RuoloOnline函数的返回值。而没有显式return的函数默认返回undefined,这就是外部调用时拿到undefined的核心原因。

修复方案

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

修改函数,让它返回axios.get的结果(本身就是Promise),外部就能通过Promise链式调用获取返回值:

export const RuoloOnline = (jwt) => {
    return axios.get("http://localhost:1337/api/users/me",
        {
            headers: {
                "Authorization": `Bearer ${jwt}`
            }
        }
    ).then((res) => { return res.data.ruolo }).catch(() => { return 0 }) 
}

方案2:用async/await语法(更易读)

换成async函数,用await等待请求结果,逻辑更直观:

export const RuoloOnline = async (jwt) => {
    try {
        const res = await axios.get("http://localhost:1337/api/users/me",
            {
                headers: {
                    "Authorization": `Bearer ${jwt}`
                }
            }
        )
        return res.data.ruolo
    } catch (err) {
        return 0
    }
}
正确调用方式

不管用哪种方案,外部调用都要处理异步逻辑:

  • 链式调用方式:
RuoloOnline(yourJwtToken).then(ruolo => {
    console.log(ruolo) // 这里能拿到正确值
})
  • async函数内用await:
async function getRuolo() {
    const ruolo = await RuoloOnline(yourJwtToken)
    console.log(ruolo)
}
getRuolo()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:01:04