借助Promise.all
// 声明调接口的方法
const getDeviceInfo = (id: any) => {
// 用Promise包裹
return new Promise((resolve, reject) => {
api.deviceInfo({ id }).then((res: any) => {
if (res.data.code == '200') {
// 我在这里处理的数据
res.data.data.status = res.data.data.status === '' ? true : res.data.data.status
deviceLists.value.filter((item: any) => item.id == id)[0].deviceInfo =res.data.data
}
resolve(res.data)
})
})
// 声明变量存储需要调的接口
const arrays: any = []
// 遍历将需要调的接口存到arrays中
deviceLists.value.forEach((item: any) => {
arrays.push(getDeviceInfo(item.id))
})
// 使用Promise.all
Promise.all(arrays).then(responses => {
console.log(responses)
// 也可以在这里处理数据
data.deviceList = deviceLists.value
console.log('data.deviceList', data.deviceList)
}).catch(error => {
// 如果任何一个请求失败,将会进入这个 catch 块
console.log(error)
})