Javascript 使用Promise.all对多个URL调用fetch()
我正在尝试获取多个URL上的JSON数据。URL是一个固定的字符串,其末尾连接有唯一的键。这些键作为数组提供,我正在使用map()对其进行迭代。结果数据被传递到Promise.all(),但返回undefined。我一辈子都搞不懂为什么Javascript 使用Promise.all对多个URL调用fetch(),javascript,reactjs,es6-promise,Javascript,Reactjs,Es6 Promise,我正在尝试获取多个URL上的JSON数据。URL是一个固定的字符串,其末尾连接有唯一的键。这些键作为数组提供,我正在使用map()对其进行迭代。结果数据被传递到Promise.all(),但返回undefined。我一辈子都搞不懂为什么 export const fetchApiEvents = async eventIds => { try { const events = await Promise.all(eventIds.map(id => {
export const fetchApiEvents = async eventIds => {
try {
const events = await Promise.all(eventIds.map(id => {
fetch('http://api_url/events/' + id)
.then(res => res.json())
}))
return events
} catch (e) {
console.log('An error occured fetching the events: ', e)
}
}
然后我调用这个函数作为一种效果:
useEffect(() => {
fetchApiEvents(eventIds)
.then(response => setEvents(response))
}, [eventIds])
我做的事情真的很愚蠢吗?
第4行中缺少return
:
export const fetchApiEvents = async eventIds => {
try {
const events = await Promise.all(eventIds.map(id => {
return fetch('http://api_url/events/' + id)
.then(res => res.json())
}))
return events
} catch (e) {
console.log('An error occured fetching the events: ', e)
}
}
您的控制台日志记录是否显示了任何信息?