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

如何将axios.post响应保存到变量?解决Promise pending问题

问题解决:获取async函数的实际响应结果

你的问题核心在于async函数的返回值本质是Promise对象,直接调用RequestLogin()得到的是处于pending状态的Promise,而非实际的响应结果。要拿到最终的响应数据,可通过以下两种方法处理:

方法1:使用await(需在async环境中)

由于await只能在async函数内部使用,你可以把代码放在立即执行的异步函数中:

const axios = require('axios');

const RequestLogin = async function () {
    let auth = {
        "user_name": "username12l",
        "password": "password12l",
    };
    // 无需额外await res,因为axios.post已经被await过,直接返回响应对象即可
    let res = await axios.post('https://.../api/v1/login', auth);
    return res;
}

// 用立即执行异步函数包裹,实现await调用
(async () => {
    const login = await RequestLogin();
    console.log("Login -> ", login);
})();

方法2:使用Promise的.then()方法

如果不想用async函数包裹,也可以直接通过Promise的链式调用获取结果:

const axios = require('axios');

const RequestLogin = async function () {
    let auth = {
        "user_name": "username12l",
        "password": "password12l",
    };
    let res = await axios.post('https://.../api/v1/login', auth);
    return res;
}

// 通过then链式调用获取最终结果
RequestLogin().then(login => {
    console.log("Login -> ", login);
});

额外说明

  • 你的代码中return await res是多余的,res已经是await axios.post()得到的实际响应对象,直接return res即可。
  • 控制台输出的[AsyncFunction: loginSysaidCookie]是因为你打印了函数本身(console.log("loginSysaidCookie -> ", RequestLogin)),若要查看执行结果,需打印函数调用后的Promise或await处理后的结果。

内容的提问来源于stack exchange,提问作者Edson Luiz dos Santos Junior

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:50:34