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

如何从Promise.all和axios调用的PromiseResult中获取data数据

代码修正方案

你现有代码的问题很明确,按以下调整即可拿到目标data内容:

  • 第一处问题:Promise.all 入参写法错误。你已经把请求Promise存入allPromises数组,不需要再给这个数组套一层外层数组,否则会多一层无意义的取值嵌套。
  • 第二处问题:axios响应结构取值路径不对。axios封装的POST请求返回的响应对象本身带data字段(存放后端返回的完整响应体),你截图中标注的业务data字段,是后端返回体里的子字段,完整取值路径是axios响应对象.data.data。

修正后完整代码

const promiseComment = axios.post(`${BASE_URL}/api/addComment/`, data, getDefaultHeaders());

const allPromises = []
allPromises.push(promiseComment)

// 移除Promise.all入参外层多余的数组包裹
Promise.all(allPromises)
    .then(function (values) {
        // values按顺序存放所有并发请求的axios响应对象,第一个请求对应values[0]
        const targetData = values[0].data.data;
        console.log('提取到的目标data内容:', targetData);
    });

如果你暂时不想调整Promise.all的入参,保留原有Promise.all([allPromises])写法的话,直接在then回调里取values[0][0].data.data也能拿到目标数据,但这种多余嵌套属于不规范写法,不建议长期保留。
后续新增并发请求时,只需要把对应请求的Promise对象push到allPromises数组,按索引从values中取对应响应,再走.data.data路径即可拿到对应接口的业务返回值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 03:06:38