我知道这是不好:需要JavaScript的睡眠()的替代
function sleep(millis) {
var date = new Date();
var curDate = null;
do { curDate = new Date();
} while(curDate-date < millis);
}
EDIT:
function doSomethingQuickly(pixelData) {
// loads an external image, filling the entire screen
// overlays $pixelsData over image
}
但我真的需要这种功能,因为doSomethingQuickly()返回如此之快,另doSomethingQuickly()'s不能被允许运行直到前一个完成。简单地解雇他们并等待结果处理他们将是灾难性的。
doSomethingQuicky();
sleep(500);
doSomethingQuicky();
sleep(500);
doSomethingQuicky();
sleep(500);
doSomethingQuicky();
sleep(500);
doSomethingQuicky();
sleep(500);
我的问题是,由于在JS模拟睡眠不好,我怎么能实现使用的setTimeout()基本相同或另一种更可接受的方法
注:这是不是在网络浏览器
编辑: 你可以看到,如果它运行5次没有睡眠,它会很快显示最终图像,当它应该做的是1)显示图像2)暂停5秒3)重复你可以看到如果它在没有睡眠的情况下跑5次,它会很快显示最终的图像,当它是什么应该做的是1)显示图像2)暂停5秒3)重复
如何是你的函数返回的如此之快,它没有足够的时间来完成? – 2011-04-13 14:49:13
错误,请使用setTimeout()?你自己回答你自己的问题。还是我错过了那么深刻,如此深刻以至于几乎是神秘的东西? – 2011-04-13 14:49:23
哈哈@peter在这里没有什么神秘的,看到上面的编辑:上面的评论。如果你认为使用setTimeout()不会很快消除前4个图像,只显示最后一个,那么我很满意。像素数据是动态数据 - 我希望这将与这个 – 2011-04-13 15:12:05