JavaScript實(shí)現(xiàn)Sleep函數(shù)的代碼
但是,這兩個(gè)函數(shù)是異步的,在計(jì)時(shí)的過(guò)程中它們后面的代碼還是會(huì)繼續(xù)執(zhí)行。那就自己來(lái)寫個(gè)sleep()函數(shù)吧,網(wǎng)上也流傳了一些實(shí)現(xiàn)方法,不過(guò)我發(fā)現(xiàn)下面這個(gè)方法簡(jiǎn)單易懂而且實(shí)用,所以在這里分享給大家:
console.log('start...');
console.log('now time: ' + Date(/\d{10,10}/.exec(Date.now())));
function sleep(sleepTime) {
for(var start = Date.now(); Date.now() - start <= sleepTime; ) { }
}
sleep(5000); // sleep 5 seconds
console.log('end...');
console.log('end time: ' + Date(/\d{10,10}/.exec(Date.now())));
如果大家的程序?qū)leep()函數(shù)的精確度不那么高的話,使用這個(gè)函數(shù)是個(gè)不錯(cuò)的選擇
下面這個(gè)是復(fù)雜些的,需要的朋友也可以參考一下:
function Sleep(obj,iMinSecond)
{
if (window.eventList==null)
window.eventList=new Array();
var ind=-1;
for (var i=0;i<window.eventList.length;i++)
{
if (window.eventList[i]==null)
{
window.eventList[i]=obj;
ind=i;
break;
}
}
if (ind==-1)
{
ind=window.eventList.length;
window.eventList[ind]=obj;
}
setTimeout("GoOn(" + ind + ")",iMinSecond);
}
function GoOn(ind)
{
var obj=window.eventList[ind];
window.eventList[ind]=null;
if (obj.NextStep) obj.NextStep();
else obj();
}
function Test()
{
alert("sleep");
Sleep(this,100);
this.NextStep=function()
{
alert("continue");
}
}
相關(guān)文章
深入解析js輪播插件核心代碼的實(shí)現(xiàn)過(guò)程
這篇文章主要深度揭密了js輪播插件核心代碼的實(shí)現(xiàn)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
JavaScript函數(shù)this指向問(wèn)題詳解
這篇文章主要為大家介紹了JavaScript函數(shù)this指向,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-11-11
axios?POST提交數(shù)據(jù)的三種請(qǐng)求方式寫法示例
這篇文章主要介紹了axios?POST提交數(shù)據(jù)的三種請(qǐng)求方式寫法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
JavaScript更改原始對(duì)象valueOf的方法
這篇文章主要介紹了JavaScript更改原始對(duì)象valueOf的方法,涉及javascript使用自定義valueOf函數(shù)替換掉原始o(jì)bject中valueOf的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
微信小程序?qū)崿F(xiàn)即時(shí)通信聊天功能的實(shí)例代碼
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)即時(shí)通信聊天功能的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08

