【发布时间】:2020-11-12 15:09:56
【问题描述】:
map函数内部的第二个api调用需要在一段时间内调用,因为这个api不允许同时调用多个。因此,数组中每个项目的映射将需要两秒钟来调用 api,然后再转到下一个项目。 我该如何解决? 它不返回任何东西。
async function HandleMatchList(){
try{
const responseMatches = await api.get('MatchListRankedGames', {
params: {
nickname
}
})
const matches = responseMatches.data
const Awaitfor2seconds = (x) => {
return new Promise (resolve => {
setTimeout(() => {
resolve(x)
}, 5000)
})
}
const linking = async (matches) => {
matches.map(async item => {
const details = await Awaitfor2seconds(
api.get('MatchDetailRoute', {
params: {
gameId: item.gameId,
nickname: nickname
}
}).then(({data}) => {
data
})
)
return details
})
}
linking(matches).then(results => {
setMatches(results)
})
}catch(e){
setError(e)
}
}
【问题讨论】:
-
停止使用
.map()并使用普通的for循环。.map()不支持异步,但常规的for循环是。
标签: javascript reactjs asynchronous promise async-await