JavaScript实现Sleep函数的代码


Posted in Javascript onMarch 04, 2007

但是,这两个函数是异步的,在计时的过程中它们后面的代码还是会继续执行。那就自己来写个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 相关文章推荐
JavaScript 在各个浏览器中执行的耐性
Apr 06 Javascript
jquery获取div宽度的实现思路与代码
Jan 13 Javascript
jquery实现省市select下拉框的替换(示例代码)
Feb 22 Javascript
JavaScript中使用concat()方法拼接字符串的教程
Jun 06 Javascript
JS实现获取剪贴板内容的方法
Jun 21 Javascript
JavaScript DOM节点操作方法总结
Aug 23 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
Dec 08 Javascript
React.js中常用的ES6写法总结(推荐)
May 09 Javascript
js 只比较时间大小的实例
Oct 26 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
Dec 07 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
js canvas实现俄罗斯方块
Oct 11 Javascript
Javascript中暂停功能的实现代码
Mar 04 #Javascript
参考:关于Javascript中实现暂停的几篇文章
Mar 04 #Javascript
插件:检测javascript的内存泄漏
Mar 04 #Javascript
一个不错的应用,用于提交获取文章内容,不推荐用
Mar 03 #Javascript
求得div 下 img的src地址的js代码
Feb 28 #Javascript
求解开jscript.encode代码的asp函数
Feb 28 #Javascript
用正则获取指定路径文件的名称
Feb 27 #Javascript
You might like
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
PDO::quote讲解
2019/01/29 PHP
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
python爬虫实现中英翻译词典
2019/06/25 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
关于迟到的检讨书
2014/01/26 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js
mysql 获取相邻数据项
2022/05/11 MySQL