xlfsummer / mp-painter

声明式地创建适用于 uniapp, 原生微信小程序和原生H5的 canvas 海报

Home Page:https://mp-painter.xlf-summer.cn/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

drawImage,不能得到绘制结束准确时间点

icepual opened this issue · comments

在element-image第78行,drawImage没有添加await.我需要在图片绘制完成之后生成图片,现在经常造成生成图片出现空白.希望这里进行一下改进

根据 文档drawImage 并不是一个异步方法,所以在它前面写 await 是没用的

另外,根据 文档 调用 draw 时有回调来表示绘制已完成,而 mp-painter 的代码中已经处理了这一情况:

await new Promise(resolve => this.ctx.draw(true, resolve));

之前我也发现了,可能会出现触发了回调,但绘制并没有完成的情况,于是设定了一些预留时间:

// 在 draw 的 callback 中, canvas 还没有真正绘制完成,此时 resolve 会导致文字错乱
await delay(100);

如果这个时间不够,可以在 draw() resolve 之后自行等待 (setTimeout) 一段时间,再进行导出图片的操作