javascript 使用使用sleep函数的常见方法详解函数的常见方法详解
本文实例讲述了javascript 使用sleep函数的常见方法。分享给大家供大家参考,具体如下:
一一.什么是什么是sleep函数?函数?
花一点时间来聊一下sleep函数,首先什么是sleep函数?
sleep是一种函数,他的作用是使程序暂停指定的时间,起到延时的效果。
例如:
console.log('1');
sleep(5000);
console.log('2');
控制台输出数字1后会间隔5秒后输出数字2
当然上面的代码是不能执行的,因为js中是没有sleep方法的。
所以这一篇文章主要介绍几种在js中实现sleep的方式。
二二.为什么使用为什么使用sleep??
看到这里有人会问了,为什么要使用sleep,上面的例子我可以使用setTimeout来实现啊?
因为setTimeout是通过回调函数来实现定时任务的,所以在多任务的场景下就会出现回调嵌套:
console.time('runTime:');
setTimeout(function(){
console.log('1')
setTimeout(function(){
console.log('2');
setTimeout(function(){
console.log('3');
console.timeEnd('runTime:');
}, 2000);
}, 3000);
}, 2000);
// 1
// 2
// 3
// runTime:: 7013.104ms
上面的方式存在回调嵌套的问题,我们希望有一个优雅的方式来实现上面的例子:
sleep(2000);
console.log('1');
sleep(3000);
console.log('2');
sleep(2000);
console.log('3');
...
三三.实现实现sleep
接下来我们就分别用几种不同的方法来实现下sleep方法
1.基于基于Date实现实现
通过死循环来阻止代码执行,同时不停比对是否超时。
function sleep(time){
var timeStamp = new Date().getTime();
var endTime = timeStamp + time;
while(true){
if (new Date().getTime() > endTime){
return;
}
}
}
console.time('runTime:');
sleep(2000);
评论0