使用javascript同步加载图像

dev*_*ett 9 javascript ajax canvas image

我需要同步加载图像,这是我需要暂停执行javascript直到图像加载.由于image.onload是异步的,因此main函数将在加载图像之前返回.

我正在使用canvas,如果main函数在加载图像之前返回并因此被绘制,则画布中的其他内容将在图像之前绘制.这不起作用,因为在画布上绘图的顺序非常重要!

这是我一直在做的事情:

var img = new Image();
img.onload = function() {
    //image drawing code here
}
img.src = "blahblahblah";
//function returns here, and other drawing code happens before image is drawn
Run Code Online (Sandbox Code Playgroud)

有没有办法同步执行此操作,或者等到图像完全加载后再从函数返回?

Dav*_*esh 2

有没有办法同步执行此操作,或者等到图像完全加载后再从函数返回?

不,据我所知,在 Javascript 中唯一可以同步完成的事情就是同步 XHR 调用。

无论如何,您真正应该做的是设置实现您的依赖项的回调层次结构。