这是我如何根据第一个请求返回的值触发请求列表,然后将该数据添加到第一个请求,然后返回。
在我的示例中,我得到一个事件列表,然后每个事件都有一个 id(从第一个 axios.get 中检索),我需要使用后续的 axios.get 获取事件描述,但这是我需要的唯一附加数据获取每个事件,所以我只是用后续 axios.get 中的长描述替换事件列表中的每个事件简短描述
async function getEvents() {
const events = await axios
.get(
eventsUrl,
config
)
.then(res => {
if (res.status === 200) {
let events = res.data.events.filter(
event => event.status === 'live' || 'completed'
)
events.map(event => {
event.urlPath = event.name.text.replace(/\s+/g, '-').toLowerCase()
})
return events
}
})
.then(async events => {
const promises = await events.map(event => axios.get(
`https://www.eventbriteapi.com/v3/events/${event.id}/description`,
config
))
await Promise.all(promises)
.then(values => {
return events.forEach((event, index) => {
event.description.html = values[index].data.description.replace(`<div>${event.description.text}</div>\n`, '')
console.log(event.description.text)
})
})
return events
})
.catch(err => {
console.log(err)
})
return await events
}