wx小程序CanvasContext.draw是一个异步函数

文章目录

    • 文章参考
    • 问题描述
    • API 说明
    • 问题分析

文章参考

  1. wxapp-qrcode
  2. wx.canvasToTempFilePath(Object object, Object this)
  3. CanvasContext.draw(boolean reserve, function callback)

问题描述

在工作中根据后台传递过来的字符串,本地利用canvas生成二维码,后面立马调用了wx.canvasToTempFilePath函数,提示失败

API 说明

  1. CanvasContext.draw:将之前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中
  2. wx.canvasToTempFilePath(Object object, Object this):把当前画布指定区域的内容导出生成指定大小的图片。在 draw() 回调里调用该方法才能保证图片导出成功。

wx.canvasToTempFilePath 的第二个参数是上下文,在自定义组件下,当前组件实例的this,以操作组件内 canvas 组件

问题分析

  1. 通过查看wx-app-qrcode的源代码,发现最后执行的方法是 CanvasContext.draw方法
  2. 查看 CanvasContext.draw API 发现,第二个参数是绘制完成后执行的回调函数
  3. 因此可以判定 CanvasContext.draw 是一个异步方法,如果想要保存图片,一定要在回调函数中执行

你可能感兴趣的:(微信小程序,uni-app,hbuildx)