收藏
回答

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 调试,就没得问题。

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

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

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


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

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





最后一次编辑于  2018-04-20  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

6 个回答

  • 蒋阅
    蒋阅
    06-18

    iphone X 12.3.1 遇到同样问题

    06-18
    赞同
    回复
  • Maosheng
    Maosheng
    2018-06-27

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

    2018-06-27
    赞同
    回复
  • 放学别跑
    放学别跑
    2018-05-10

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

    2018-05-10
    赞同
    回复
  • Recluse
    Recluse
    2018-05-03

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

    2018-05-03
    赞同
    回复
  • Recluse
    Recluse
    2018-05-03

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

    2018-05-03
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2018-04-20

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

    2018-04-20
    赞同
    回复