image.onload返回不是我想要的

时间:2018-03-15 15:22:22

标签: javascript

我使用canvas标签裁剪图像。

跟随我的代码:

data:,

我认为日志结果应该是base64的字符串,但回调是xs

我的代码中存在什么问题?

2 个答案:

答案 0 :(得分:1)

您的功能是IIFE。您将其称为立即,然后将其返回值分配给img.onload

(然后您将img.onload的值指定为x)。

这意味着您没有为img.onload分配功能,因此在图像加载后没有任何反应。

这也意味着当您尝试将图像作为参数传递给ctx.drawImage时,图像尚未加载。

由于图片未加载,因此无法将数据转换为canvas.toDataURL的数据网址。

你需要:

  1. 从函数定义后删除(),以便将其分配给img.onload,并在图像加载时调用
  2. 摆脱let x =,因为那只是函数的副本
  3. 阅读How do I return the response from an asynchronous call?

答案 1 :(得分:0)

您是否要在没有data:image/jpeg;base64部分的情况下返回数据网址?

如果是这样,您将在方法中返回dataUrl而不是dataUrl_short