const getFilePromises: Promise<any>[] = [];
fileIds.forEach((item) => {
getFilePromises.push(getFileInfoApi({ id: item }));
});
Promise.allSettled(getFilePromises)
.then((res) => {
this.fileList = res.map((item, index) => {
if (item.status == 'fulfilled' && item.value?.data) {
const { name, url, id, suffix } = item.value?.data;
return { uid: id, name, status: 'done', url, fileType: suffix };
} else {
return {
uid: fileIds[index],
name: '加载错误',
status: 'error',
url: ''
};
}
});
})
.catch((res) => {
this.fileList = fileIds.map((item) => {
return { uid: item, name: '加载错误', status: 'error', url: '' };
});
});
1.创建getFilePromises的promise类型变量。
2.把请求通过同步循环的方式push到变量中。
3.在使用Promise.allSettled(变量)一次性请求拿到所有数据。
标签:status,请求,url,item,Promise,getFilePromises,allSettled,name
From: https://www.cnblogs.com/songkomei/p/17899579.html