0

我正在使用 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

4

2 回答 2

0

这将起作用

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)
于 2021-01-18T16:37:32.633 回答
-1

您在 push 方法中使用“+”号

responseDetails.push(":::: 时间 :::" + values);

您想要以下输出 [ :::time:::, [{...your objects..}] ]

用responseDetails.push(":::: time :::" , values);替换你的代码 反而

于 2021-01-18T16:53:31.843 回答