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

相关文章

  • 微信小程序 搜索框组件代码实例

    微信小程序 搜索框组件代码实例

    这篇文章主要介绍了微信小程序 搜索框组件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • JavaScript运动原理基础知识详解

    JavaScript运动原理基础知识详解

    这篇文章主要介绍了JavaScript运动原理基础知识详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 基于小程序请求接口wx.request封装的类axios请求

    基于小程序请求接口wx.request封装的类axios请求

    这篇文章主要介绍了基于小程序请求接口wx.request封装的类axios请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • JS实现点击掉落特效

    JS实现点击掉落特效

    这篇文章主要介绍了JS实现点击掉落特效,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 网页自动刷新,不产生嗒嗒声的一个解决方法

    网页自动刷新,不产生嗒嗒声的一个解决方法

    网页自动刷新,不产生嗒嗒声的一个解决方法...
    2007-03-03
  • ES6入门教程之Array.from()方法

    ES6入门教程之Array.from()方法

    这篇文章主要给大家介绍了关于ES6入门教程之Array.from()方法的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ES6具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • JavaScript常用验证函数实例汇总

    JavaScript常用验证函数实例汇总

    这篇文章主要介绍了JavaScript常用验证函数,实例汇总了如字符串验证、表单验证及js常用特效等诸多js常用验证函数及相关技巧,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • 小程序如何写动态标签的实现方法

    小程序如何写动态标签的实现方法

    这篇文章主要介绍了小程序如何写动态标签的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • js时间日期和毫秒的相互转换

    js时间日期和毫秒的相互转换

    js时间日期和毫秒的相互转换,需要的朋友可以参考一下
    2013-02-02
  • 8个JavaScript中高阶函数的运用分享

    8个JavaScript中高阶函数的运用分享

    高阶函数是指以函数作为参数的函数,并且可以将函数作为结果返回的函数。本文整理了8个JavaScript中高阶函数的运用,需要的可以参考一下
    2023-04-04

最新评论