关于异步接口draw
使用场景
根据 canvas 进行裁剪 然后 使用draw 方法 回调函数 中 再调 canvasToTempFilePath api
生成 图片
模拟器 是正常的
是正常的
但是 在 真机中
代码 :
context.draw( false , function (){ wx.canvasToTempFilePath({ canvasId: 'canvas' , success: function (res) { console.log(res) wx.getImageInfo({ src: res.tempFilePath, success: function (res) { console.log(res) } }) _this.page.setData({ canvaResUrl: res.tempFilePath, }) } }) }) |
问题是
真机生成的 图片 有的 时候正常 有的 时候不正常 模拟机 每次正常
最后 定位 到 draw 接口 是 异步的
在 回调 时 生成 图片 有问题 在 draw 回调 加了 一个 定时器
context.draw( false , function (){ setTimeout( function (){ wx.canvasToTempFilePath({ canvasId: 'canvas' , success: function (res) { wx.getImageInfo({ src: res.tempFilePath, success: function (res) { console.log(res) } }) _this.page.setData({ canvaResUrl: res.tempFilePath, }) } }) },1000) }) |
疑问:
draw 中 回调 不是 在 绘制 完成 时 执行么
现在 加的 时间 是 1000ms 这个 时间 可能 和 设备 有关 这样 处理肯定 不好
还有 更好的 解决 办法么?
5 回复