如何将 Promise.all 的结果放在特定位置?

How to put result of Promise.all at specific place?

在我的情况下有什么方法可以使用 Promise.all 吗? 我应该使用两个不同的循环(一个用于推送一组承诺,另一个用于将每个结果推送到正确的位置)?

(这只是一个示例,我当前的代码包含更多数据,因此使用 Promise.all 似乎非常有趣,因为请求彼此独立)

const  myFunction = async ()=>{

    let someData=[{ID:55,name:'name1',firstname:'fname1',address:'address1'},
                  {ID:26,name:'name2',firstname:'fname2',address:'address2'},
                  {ID:88,name:'name3',firstname:'fname3',address:'address3'}]
    
    for (let i = 0; i < someData.length; i++) {
       someData[i].country = await getCountryFromDatabase(someData[i].ID)
      }

    }

谢谢

将数组映射到承诺数组,使用映射回调中对对象的引用在 API 调用完成后对其进行变异。

let someData = [{ ID: 55, name: 'name1', firstname: 'fname1', address: 'address1' },
    { ID: 26, name: 'name2', firstname: 'fname2', address: 'address2' },
    { ID: 88, name: 'name3', firstname: 'fname3', address: 'address3' }]
await Promise.all(
    someData.map(obj => (
        getCountryFromDatabase(obj.ID).then((country) => {
            obj.country = country;
        })
    ))
);