数组中循环请求数据,所有请求完成后返回所有数据
// 获取数据
async getInfo(id) {
return await new Promise((resolve, reject) => {
// 请求接口
this.$http.get(‘接口名’).then(res => {
resolve(res.data.data)
}).catch(() => {
reject({})
})
})
},
async handleGoods(arr) { //arr传入数组
const scoreArr = []
for (let i = 0; i < arr.length; i++) {
const data = await this.getInfo(arr[i].id)
scoreArr.push(data)
}
//scoreArr为所有请求完成后的所有数据
},
//里面的循环不能用forEach,在 forEach 中使用 await 的问题就在于,await 只会等待 Promise 对象完成,然而 forEach 并不会等待回调函数完成,而是在每次调用回调函数之后立即执行下一轮循环