promise示例

6 篇文章 0 订阅

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;
    }
});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值