html52.com
我爱小程序-开发者交流社区

canvas 生成图片过程中, Promise.all() 无法正常调用

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug wx.getImageInfo,wx.previewImage,wx.canvasToTempFilePath,wx.canvasGetImageData 客户端 6.65 19.97

需求:  生成分享图片

业务逻辑:   点击分享按钮, 将生成一张分享图片, 

技术实现:   通过 canvas 把页面绘制出来,wx.cancasToTempFilePath 将图片导出得到生成图路径,wx.getImageInfo 根据路径下载图,wx.previewImage 预览图片。


遇到问题:

 在 canvas 绘制图片前,需要把图片下载下来(getImageInfo ),多张图片就用到了 Promise.all()  (见下图)。

小程序开发工具实现没有问题,真机测试就出现问题,一直在生成中,排查代码后发现 promise.all().then() 就进不去 then()方法。 

 

同时发现一个有趣的规律:

    如果真机测试打开 vconsole 调试,就没得问题。

    真机扫开发工具=》远程调试  生成的二维码也没有问题

    只有真机扫描 开发工具 》 预览 生成的二维码就有问题!

    很是奇怪 !不解其中的奥妙!


有木有人遇到这样的问题? 欢迎一起讨论 或给予指点

小程序有没有技术支持呢? 在哪里可以找到?




小程序有没有技术支持呢? 在哪里可以找到?

网友回复

Maosheng:

很神奇,我也是使用Promise.all批量下载图片,但是至今未有then无法进入的情况,是否接口域名未配置好,或者图片不是https的?我使用的不是getimageinfo,而是downloadfile。后面是怎么解决的呢?希望了解一下方便踩坑

放学别跑:

@LastLeaf  安卓基本上 全军覆没,最后改变了实现的机制。

Recluse:

对了,我们遇到的情况是:只有当用户第一次进入小程序会出现这样的问题。当用户把小程序删除后,再次进入就好了,以后就一直是正常的了。

Recluse:

我们也遇到了跟描述一模一样的问题,想问一下,你们最后解决了么?

LastLeaf:

你好,初步判断是不同 js 引擎的 promise 实现差异导致。请问你出现问题的真机机型是什么呢?

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付