gpt4 book ai didi

javascript - 迭代完成后使用 Promise

转载 作者:行者123 更新时间:2023-11-28 18:11:09 25 4
gpt4 key购买 nike

我试图弄清楚如何在迭代完成后实现异步执行方式

基本上我有这样的东西:

  data.businesses.map( club => {
axios.get(`${ROOT_URL}/club/${currentEmail}/${club.id}`)
.then( ({data}) => {
placeholder.push( Object.assign({}, club, data))
})
.then( () => ..do extra stuff )
})

// when data.businesses.map is done iterating all of the elements, do something

如您所见,通过axios检索信息时存在一些异步问题

我对 promise 的想法还很陌生,但我不确定在哪里应用(如果适用)

最佳答案

您可以使用 Promise.all() 等待一组 promise 得到解决(或至少一个被拒绝) .

要收集该集合,您可以通过删除箭头函数中的大括号让 .map() 的迭代器函数返回每个 Promise。

let promisedClubs = data.businesses.map( club =>
axios.get(`${ROOT_URL}/club/${currentEmail}/${club.id}`)
.then( ({data}) => {
placeholder.push( Object.assign({}, club, data))
})
.then( () => ..do extra stuff )
);

Promise.all(promisedClubs).then(clubs => {
// when data.businesses.map is done iterating all of the elements, do something
}, failedClub => {
// error handling
});

关于javascript - 迭代完成后使用 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com