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

相关文章

  • JavaScript中使用Async实现异步控制

    JavaScript中使用Async实现异步控制

    async提供了很多函数用于异步流程控制,下面是async核心的几个函数,大家通过本文学习下,对使用async 实现异步控制相关知识,感兴趣的朋友一起看看吧
    2017-08-08
  • JavaScript 预解析的4种实现方法解析

    JavaScript 预解析的4种实现方法解析

    这篇文章主要介绍了JavaScript 预解析的4种实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 微信小程序实现根据日期和时间排序功能

    微信小程序实现根据日期和时间排序功能

    这篇文章主要为大家详细介绍了微信小程序实现根据日期和时间排序功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • ES6中异步对象Promise用法详解

    ES6中异步对象Promise用法详解

    这篇文章主要介绍了ES6中异步对象Promise用法,对比ES5分析了ES6异步方法Promise的使用技巧,并结合实例形式分析了连续使用Promise对象、Promise捕获错误的catch()、以及Promise的高级用法,需要的朋友可以参考下
    2019-07-07
  • 使用javascript控制cookie显示和隐藏背景图

    使用javascript控制cookie显示和隐藏背景图

    本文主要介绍了使用javascript来控制背景图片的显示和隐藏,当点击关闭按钮时,控制CSS使页面不加载背景图,同时记录COOKIE相关参数,并设置cookie的有效期
    2014-02-02
  • 微信小程序与h5的相互跳转场景分析

    微信小程序与h5的相互跳转场景分析

    这篇文章主要介绍了微信小程序与h5的相互跳转场景分析,在微信小程序内编写webview文件,通过webview去跳转h5,loadUrl为h5的地址,非嵌套,h5需要跳转打开某个微信小程序,需要的朋友可以参考下
    2023-10-10
  • 一篇文章深入了解JavaScript中的fetch方法

    一篇文章深入了解JavaScript中的fetch方法

    这篇文章主要给大家介绍了关于JavaScript中fetch方法的相关资料,JavaScript中的fetch()方法用于向服务器请求并加载网页中的信息,请求可以是返回JSON或XML格式数据的任何API,需要的朋友可以参考下
    2023-10-10
  • 在JavaScript中对HTML进行反转义详解

    在JavaScript中对HTML进行反转义详解

    下面小编就为大家带来一篇在JavaScript中对HTML进行反转义详解。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • JS面向对象编程实现的拖拽功能案例详解

    JS面向对象编程实现的拖拽功能案例详解

    这篇文章主要介绍了JS面向对象编程实现的拖拽功能,结合具体案例形式详细对比分析了JS面向过程与面向对象实现的拖拽功能相关操作技巧,需要的朋友可以参考下
    2020-03-03
  • js一维数组、多维数组和对象的混合使用方法

    js一维数组、多维数组和对象的混合使用方法

    这篇文章主要介绍了js一维数组、多维数组和对象的混合使用方法,需要的朋友可以参考下
    2016-04-04

最新评论