我正在调用一个API,该API返回用户列表,如下所示:
const users = await axios.get('/api/users/all');
res.data现在是我的用户的数组,每个用户都有一个名为manager的字段,这是另一个模式中一个经理的id.我有另一个API,当提供经理id时,它返回经理名称
axios.get('/api/managers/managerName', id)
我想运行一个forEach,将经理名插入到我的结果中,而不是他的ID。 我正在努力
const users= await axios.get('/api/users/all');
const final = users.data.forEach(function (element) {
element.managerName= axios.get('/api/managers/managerName', element.id);
});
但这当然不起作用,因为axios.get('/api/managers/managername',element.id)
返回一个承诺。 我该怎么解决这个问题? 谢谢
const users= await axios.get('/api/users/all');
const final = Promise.all(
users.data.map(async (element) => {
element.managerName = await axios.get('/api/managers/managerName', element.id);
}));
你可以解决你的第二个承诺:
const final = users.data.forEach(async function (element) {
element.managerName= await axios.get('/api/managers/managerName', element.id).then((manager) => manager.name);
});