0

我正在使用 Javascript 创建 HTML5,但有时代码在当前行完成之前执行下一行语句,

例如,我在 Javascript 中将图像传递给对象,但是在对象拥有图像之前已经执行了下一条语句,所以有时对象没有图像,但有时它有,

所以在两行之间我需要分配回调或等待函数之类的东西,但我不知道如何

var image=new Image();
ws.send("complete");
4

3 回答 3

5

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!');
});
于 2012-05-21T08:59:57.163 回答
1

不确定您的问题是否是特定于图像的,但对于图像,您可以执行以下操作:加载图像后将触发 onload 事件。

var im = new Image();
im.onload = function() { ws.send('complete'); }
im.src = 'path/to/image.jpg'
于 2012-05-21T09:00:52.033 回答
0

看看这个:Javascript图像加载

本质上,您必须编写一个事件侦听器,以在加载图像时捕获事件。

于 2012-05-21T09:00:57.757 回答