今天有個程序員朋友問起我在js中實現sleep休眠一段時間怎樣操作的問題,我整理了可以實現js中自定義方法實現停留幾秒sleep的方法,希望可以幫助到需要的朋友
首先聲明,js中是不自帶sleep方法的,因此要想實現休眠必須自定義代碼,下面是我從網上找到的最常見的寫法,這寫法思路是比較簡單易懂的循環寫法,但是這個方法的缺點在于它,其實并沒有讓腳本解釋器sleep下來,而且有讓CPU迅速上到高負荷的附作用。瀏覽器甚至會在該段時間內處于假死狀態。
function sleep(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}
最后,給大家推薦一套實用的寫法:
var $break = new Object();
var $continue = new Object();
var Enumerable = {
each: function(iterator) {
var index = 0;
try {
this._each(function(value) {
try {
iterator(value, index++);
} catch (e) {
if (e != $continue) throw e;
}
});
} catch (e) {
if (e != $break) throw e;}
},
all: function(iterator) {
var result = true;
this.each(function(value, index) {
result = result && !!(iterator || Prototype.K)(value, index);
if (!result) throw $break;
});
return result;
},
any: function(iterator) {
var result = true;
this.each(function(value, index) {
if (result = !!(iterator || Prototype.K)(value, index))
throw $break;
});
return result;
},
新聞熱點
疑難解答