数组中使用 promise的操作记录
当数组中存着所需的id,需要批量发请求(一般是不需要的,如果高频次出现,可以认为是后端偷懒)
const dataArray = [
{
id: 1,
name: 'Tom'
},
{
id: 2,
name: 'Sam'
},
{
id: 3,
name: 'Candy'
}
]
function returnData() {
return new Promise((resolve, reject) => {
const resultArray = dataArray.map(async (ele) => {
ele.userId = await getUser(ele.id)
ele.userName = await getUserName(ele.name)
})
resolve(dataArray)
})
}
// 如果数组map方法批量返回了Promise()的话,
// 可以用Promise.allSettled()来获取成组的Promise
function getUser(userId) {
return new Promise((resolve, reject) => {
const result = `得到用户id${userId}`
resolve(result)
})
}
function getUserName(name) {
return new Promise((resolve, reject) => {
const result = `得到用户名${name}`
resolve(result)
})
}
returnData().then((res) => {
console.log(res, '返回值')
})
// > [
// {
// "id":1,
// "name":"Tom",
// "userId":"得到用户id1"
// },
// {
// "id":2,
// "name":"Sam",
// "userId":"得到用户id2"
// },
// {
// "id":3,
// "name":"Candy",
// "userId":"得到用户id3"
// }
// ]
// 返回值

浙公网安备 33010602011771号