将 promise.all 中的值添加到数组

问题描述

我正在使用 Promise.all 调用多个 api 调用并且能够接收它们的响应,但我想将它们添加到数组中

我的代码

async function asynchUploadGrpFiles(files) {
  var responseDetails = [];

  await Promise.all([get('https://httpbin.org/get?a=1'),get('https://httpbin.org/get?b=2'),get('https://httpbin.org/get?c=3')
  ]).then(values => {

    responseDetails.push(":::: time :::" + values);

    console.log(values);
  });

  console.log(responseDetails.toString());
}

我能够记录来自 console.log(values); 的响应,但这些响应没有被推送到 responseDetails

解决方法

这会起作用

const asynchUploadGrpFiles = async (files) => {
  const [data1,data2,data3] = await Promise.all([
    get('https://httpbin.org/get?a=1'),get('https://httpbin.org/get?b=2'),get('https://httpbin.org/get?c=3'),])
  const responseDetails = [...data1,...data2,...data3]
  console.log(responseDetails.toString())
}

然后调用函数

// Call it somewhere
await asynchUploadGrpFiles(files)
,

您在推送方法中使用了“+”号

responseDetails.push(":::: time :::" + values);

您需要以下输出 [ :::time:::,[{...你的对象..}] ]

替换你的代码再见 responseDetails.push(":::: time :::" , values); 代替