1、等图片加载完后获取图片的尺寸,后续可以判断尺寸是否符合要求
const getImageSize: any = (url) => {
let size = {
width: 0,
height: 0,
}
let img = new Image();
img.src = url;
return new Promise(resolve => {
img.onload = () => {
const { width, height } = img;
size = {
width,
height
}
img.onload = null;
return resolve(size);
};
img.onerror = () => {
message.error('图片加载失败,获取不到图片尺寸,请重新上传');
img.onerror = null;
return resolve(size);
};
})
};
使用:
const size = await getImageSize(url);
if (size.width!==width && size.height!==height) {
message.error(`请上传尺寸为${width}px*${height}px的图片`);
}
2、批量获取接口,比如一个页面中有好几个地方需要根据相应的id获取对应的活动列表
const getBatchActivityList: any = (idList) => {
return Promise.all(idList.map(id => {
if (!id) return Promise.resolve(null);
return getJKTActivityInfo({activityId: id});
})).catch(() => {
message.error('获取活动列表数据失败,请刷新重试')
});
}
使用:
const resArr = await getBatchActivityList(idList);
resArr && resArr.forEach((res, i) => {
if (res) {
const { tagSummaryList, summary } = res;
tagSummaryListArr[i] = tagSummaryList;
jktSummaryList[i] = summary;
}
});