微信小程序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)
	}
  });

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

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

相关推荐
a17798877124 小时前
小程序上传图像失败
小程序·c#
花卷HJ10 小时前
微信小程序国际化完整方案
微信小程序·小程序·notepad++
2501_9160088910 小时前
2026 iOS 证书管理,告别钥匙串依赖,构建可复制的签名环境
android·ios·小程序·https·uni-app·iphone·webview
nhc08810 小时前
贵阳纳海川科技・上门洗车行业解决方案
科技·微信小程序·软件开发·小程序开发
土土哥V_araolin11 小时前
十二星商城小公排系统开发
小程序·个人开发·零售
hashiqimiya12 小时前
微信小程序--动态切换登录注册标签页
微信小程序·小程序
hashiqimiya12 小时前
微信小程序--获取验证码设计倒计时灰白色
微信小程序·小程序
weixin_lynhgworld15 小时前
电商营销新风口,淘宝扭蛋机小程序引爆流量与转化
小程序
2501_9339072116 小时前
宁波小程序公司提供专业的小程序开发服务
科技·微信小程序·小程序
杰建云16716 小时前
小程序搭建如何影响企业数字化转型
小程序·小程序制作