JavaScript实现Sleep函数的代码

 更新时间:2007年03月04日 00:00:00   作者:  
大家知道,JavaScript中没有内置我们常用的sleep()函数,只有定时器setTimeout()和循环定时器setInterval()

但是,这两个函数是异步的,在计时的过程中它们后面的代码还是会继续执行。那就自己来写个sleep()函数吧,网上也流传了一些实现方法,不过我发现下面这个方法简单易懂而且实用,所以在这里分享给大家:

复制代码 代码如下:

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())));

如果大家的程序对sleep()函数的精确度不那么高的话,使用这个函数是个不错的选择

下面这个是复杂些的,需要的朋友也可以参考一下:

复制代码 代码如下:

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");
  }
 }

相关文章

  • 深入解析js轮播插件核心代码的实现过程

    深入解析js轮播插件核心代码的实现过程

    这篇文章主要深度揭密了js轮播插件核心代码的实现过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • JavaScript函数this指向问题详解

    JavaScript函数this指向问题详解

    这篇文章主要为大家介绍了JavaScript函数this指向,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • axios POST提交数据的三种请求方式写法示例

    axios POST提交数据的三种请求方式写法示例

    这篇文章主要介绍了axios POST提交数据的三种请求方式写法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • JavaScript中双向数据绑定详解

    JavaScript中双向数据绑定详解

    这篇文章主要为大家详细介绍了JavaScript中双向数据绑定,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • redux处理异步action解决方案

    redux处理异步action解决方案

    这篇文章主要介绍了redux处理异步action解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • JavaScript更改原始对象valueOf的方法

    JavaScript更改原始对象valueOf的方法

    这篇文章主要介绍了JavaScript更改原始对象valueOf的方法,涉及javascript使用自定义valueOf函数替换掉原始object中valueOf的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • JavaScript 模拟用户单击事件

    JavaScript 模拟用户单击事件

    单击一个按钮或超链接,然后会出现其他的超链接,这时要让其中的一个超链接被单击,以显示一个初始页面。(公司页面使用了frameset)很显然,之后的超链接单击事件需要通过JavaScript来触发。
    2009-12-12
  • 微信小程序实现即时通信聊天功能的实例代码

    微信小程序实现即时通信聊天功能的实例代码

    这篇文章主要介绍了微信小程序实现即时通信聊天功能的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • js实现扫雷源代码

    js实现扫雷源代码

    这篇文章主要为大家详细介绍了js实现扫雷源代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • JS实现图片上传预览功能

    JS实现图片上传预览功能

    本文给大家分享一段js代码关于实现图片上传预览功能,代码简单易懂,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-11-11

最新评论