数组中使用 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"
//     }
// ]
//     返回值

  

posted @ 2022-03-10 15:30  时间观测者  阅读(177)  评论(0编辑  收藏  举报