【发布时间】:2019-07-31 03:19:45
【问题描述】:
canvas.toBlob() 需要回调函数,但 canvas.toDataURL() 会同步返回结果。为什么有区别?这不是问题,但我非常好奇,我找不到解释为什么会这样。
【问题讨论】:
-
是的,这有点奇怪,可能只是事情的结局。 (不过,异步在这里很重要,因为它让浏览器在编码期间不会阻塞 UI。)
-
canvas.toDataURL() 比 Blob() 标准化之前要旧得多。在此期间,人们意识到高分辨率图像和移动性能将极大地受益于 node.js 流行的异步接口,它允许主机环境在调度处理和处理 RAM 方面具有更大的灵活性,而不会停止或减慢页面的执行。几乎所有 Blob() 接口都是异步的。
-
@dandavis 您可以将其发布为答案,以便我投票吗?你的回答对我来说听起来很棒,让它成为一个答案会让其他人也赞成它
-
@dandavis
Virtually all Blob() interfaces are asyncBlob 构造函数和任何 Blob 方法除外? -
@Kaiido:是的,使用 Blob 的接口是异步的:FileReader、Fetch 等...
标签: javascript html html5-canvas todataurl