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

Node.js中Axios请求响应数据提取失败求助

解决Axios异步请求后无法获取数据的问题

你的问题核心是异步操作的执行顺序问题:Axios的HTTP请求是异步任务,.then()里的回调函数要等请求完成后才会执行,但你在外部的console.log(result)会在请求还没返回结果时就先运行,此时result还是初始的空数组,所以输出[]。

下面是两种可行的解决方法:

方法1:将逻辑放在.then()回调内部

把所有需要用到result的代码都移到.then()的回调里,确保只有在请求成功拿到数据后才执行这些逻辑:

let config = {
    method: 'get',
    maxBodyLength: Infinity,
    url: urlToSend,
    headers: { 
        'Authorization': 'Bearer ' + token,
    }
};

axios.request(config)
    .then((response) => {
        const result = response.data;
        console.log(result); // 在这里可以正常获取数据
        // 其他需要使用result的业务逻辑也写在这里
    })
    .catch((error) => {
        console.log(error);
    });

方法2:使用async/await语法(更简洁)

用async/await把异步代码写成同步风格,需要注意await必须放在async声明的函数内部:

async function fetchData() {
    const config = {
        method: 'get',
        maxBodyLength: Infinity,
        url: urlToSend,
        headers: { 
            'Authorization': 'Bearer ' + token,
        }
    };

    try {
        const response = await axios.request(config);
        const result = response.data;
        console.log(result); // 在这里正常获取数据
    } catch (error) {
        console.log(error);
    }
}

// 调用这个异步函数
fetchData();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:59:56