Canvas 图像裁剪器 - canvas.toDataURL 正在异步执行此 return 任何类型的承诺

Canvas image cropper - canvas.toDataURL is acting asynchronously does this return any kind of promise

如果我在 'toDataURL' 和使用结果的 canvas 抽签之间发出警报,那么一切都会按预期进行。

toDataURL 是否会在 canvas 上触发事件,或者我应该为我设置的图像源使用某种 'onLoad' 吗?

IE img.addEventListener('load',函数(){...}

.toDataURL是同步操作,不会触发任何事件。

由于是同步的,因此它是一个阻塞操作,因此不需要 alert 来阻止在 toDataURL 完全完成之前执行下一个命令。当 toDataURL 完全完成时,将执行下一个命令。

由于您使用 dataURL 作为图像源,因此您需要通过分配回调来为图像加载时间:

var img=new Image();
img.onload=function(){
    ctx.drawImage(img,0,0);
}
img.src=canvas.toDataURL();

.toDataURL is a synchronous operation that does not trigger any events. This is not true anymore for Chrome 57. Not sure if this is a bug or on purpose.