Javascript Canvas:clearRect()不清除drawImage()

Javascript Canvas:clearRect()不清除drawImage(),javascript,canvas,Javascript,Canvas,我尝试清除画布,在其他位置绘制图像: 画布被清除,除去所有绘制的图像。 我是画布开发新手。但是我没有任何线索。onload是异步的,因此会在ClearRect之后触发。谢谢!但是如果不这样加载,图像就不会显示:Kaido说了所有你需要知道的,问题是什么?在图像加载和绘制之前,您无法清除图像。我理解代码中的问题,但无法解决它。我试图替换onload(),但在这种情况下,图像不会显示。即使我删除了clearRect()。您也必须预加载所有图像并等待回调: var canvas = document

我尝试清除画布,在其他位置绘制图像:

画布被清除,除去所有绘制的图像。
我是画布开发新手。但是我没有任何线索。

onload是异步的,因此会在ClearRect之后触发。谢谢!但是如果不这样加载,图像就不会显示:Kaido说了所有你需要知道的,问题是什么?在图像加载和绘制之前,您无法清除图像。我理解代码中的问题,但无法解决它。我试图替换onload(),但在这种情况下,图像不会显示。即使我删除了clearRect()。您也必须预加载所有图像并等待回调:
var canvas = document.createElement('canvas');
var ctx = canvas.getContext("2d");

function image(_img, _x, _y, _w, _h) {
  var img = new Image(); // Create new img element

  img.onload = function() {
    ctx.drawImage(img, _x, _y, _w, _h);
  }
  img.src = _img; // Set source path
  ctx.clearRect(0, 0, 32, 32);

}

var body = document.getElementsByTagName("body")[0];
body.appendChild(canvas);
image("http://via.placeholder.com/32x32", 0, 0, 32, 32);