我知道這是不好:需要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