我正在使用 Javascript 创建 HTML5,但有时代码在当前行完成之前执行下一行语句,
例如,我在 Javascript 中将图像传递给对象,但是在对象拥有图像之前已经执行了下一条语句,所以有时对象没有图像,但有时它有,
所以在两行之间我需要分配回调或等待函数之类的东西,但我不知道如何
var image=new Image();
ws.send("complete");
我正在使用 Javascript 创建 HTML5,但有时代码在当前行完成之前执行下一行语句,
例如,我在 Javascript 中将图像传递给对象,但是在对象拥有图像之前已经执行了下一条语句,所以有时对象没有图像,但有时它有,
所以在两行之间我需要分配回调或等待函数之类的东西,但我不知道如何
var image=new Image();
ws.send("complete");
Javascript(大部分)是异步的,这是一件好事。例如,您不想在等待图像时阻止 UI。
图像完成后,使用以下命令执行 ws.send:
var image = new Image();
image.onload = function()
{
ws.send("complete");
}
image.src = 'image.jpg';
如果您要同步执行此操作,则整个程序将阻塞,而您不希望那样。
至于回调,您可以将一个函数作为参数传递给您的函数。例如:
function doSomething(callback)
{
callback();
}
doSomething(function()
{
console.log('im done!');
});
不确定您的问题是否是特定于图像的,但对于图像,您可以执行以下操作:加载图像后将触发 onload 事件。
var im = new Image();
im.onload = function() { ws.send('complete'); }
im.src = 'path/to/image.jpg'
看看这个:Javascript图像加载
本质上,您必须编写一个事件侦听器,以在加载图像时捕获事件。