微信小程序canvas画布如何解决在for循环绘制图像显示不全的问题

如下所示,在for循环中绘制图像,由于onload函数加载图像是异步执行,会导致显示不全所有图片的问题。

javascript 复制代码
  for(var a=0;a<2;++a){       
    var img = canvas.createImage()
    img.src = product_image[items[a]]
    img.onload = ()=>{
      ctx.drawImage(el,0,h,image_w,image_h)
    }                
  }

可以将异步执行过程通过promise变为同步执行,但此方法相对复杂。

可以在第一个for循环中保存img对象,然后单独增加一个for循环加载图片,如下所示:

javascript 复制代码
  var image = []
  for(var a=0;a<2;++a){       
    var img = canvas.createImage()
    img.src = product_image[items[a]]
    image[a] = img               
  }
  image.forEach(function(el,index){
	var h = index*pr_height+pr_h_margin+p_name_size+sp_el_h
	el.onload = ()=>{
		ctx.drawImage(el,0,h,image_w,image_h)
	}
  });

更多微信小程序内容欢迎关注博主和订阅专栏。

有相关业务可以联系博主。

相关推荐
WX:ywyy679822 分钟前
从0到1:付费短剧小程序全栈定制开发实战与避坑指南
微信·小程序·短剧小程序开发·短剧系统开发·短剧app开发·短剧平台开发·短剧平台搭建
笨笨狗吞噬者1 小时前
【uniapp】小程序端解决分包的uni_modules打包后产物进入主包中的问题
前端·微信小程序·uni-app
天空属于哈夫克33 小时前
Java 开发|企微外部群主动发送小程序消息实战
开发语言·python·小程序·自动化·企业微信·rpa
焦糖玛奇朵婷3 小时前
做盲盒小程序,如何少走弯路?
数据库·程序人生·小程序·开源软件·软件需求
玛雅牛牛3 小时前
商城小程序实用度多家对比+新手友好款
大数据·小程序
CHU7290354 小时前
货运物流APP前端交互创新:以用户为中心重构运输服务全链路
java·前端·小程序·重构
幽络源小助理4 小时前
小程序源码分享:模拟人生游戏源码
微信小程序·游戏源码
十一0829934 小时前
扫描普通二维码跳转小程序
小程序
CHU7290355 小时前
以安心托付,换无忧时光:宠物寄养小程序功能浅析
小程序·宠物
卓越软件开发5 小时前
毕设全栈开发一条龙:Java/SpringBoot/Vue/ 小程序 / Python / 安卓 / AI 图像识别 人脸检测 车牌识别 YOLO
开发语言·spring boot·python·yolo·小程序·毕业设计·课程设计