问题描述
我正在使用 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); 代替