ReactJS axios.post通过返回对象的数组函数位于映射中



因此,我尝试通过数组进行映射,数组中的每个项都是post请求的参数值。因此,我正在寻找一个具有请求后响应返回值的finalArray,并且需要在其他地方使用finalArray。

const finalArray = paramArray.map(paramKey => {
axios.post(URL, {
filters: [
{
field: "key", 
values: [paramKey.key]
}
]
}).then(res => {
//res.data.itemName
});
return {
key: paramKey.key,
text: //res.data.itemName,
value: paramKey.value
}
});

所以我不确定如何在CCD_ 2中的函数之外传递CCD_。我尝试在axios之前声明一个变量,比如let name = "";,在.then内部我有name = res.data.itemName,然后我将名称作为text: name传递给文本,但这会给我所有的空字符串。我还尝试将返回放入.then中,这样finalArray就给了我未定义的值。

有没有办法将res.data.itemName作为res.data.itemName0的值传递?

您可以使用Promise.all

async function() {
const promises = paramArray.map(paramKey => axios.post(URL, {
filters: [
{
field: "key", 
values: [paramKey.key]
}
]
})
);
const values = await Promise.all(promises)
const finalArray = paramArray.map((paramKey, index) => {
return {
key: paramKey.key,
text: values[index].data.itemName,
value: paramKey.value
}
})
}

最新更新