参考文档:
JavaScript在nodejs中实现sleep休眠函数wait等待的方法:
https://www.bas369.com/more/l...
js的休眠实现---sleep():
https://blog.csdn.net/lwh1379...
JS实现停留几秒sleep,Js中for循环的阻塞机制,setTimeout延迟执行:
https://blog.csdn.net/wz92555...
欢迎大家访问我的个人导航网站并且设置为主页:
巴士369,伴您到永久!https://www.bas369.com
1. 方法一:使用异步函数,setTimeout
函数 await
实现代码的休眠暂停;
代码实现:
以下代码来自于互联网,具体出处已经不记得了;
// 函数实现,参数单位 毫秒 ;
function wait(ms) {
return new Promise(resolve = >setTimeout(() = >resolve(), ms));
};
// 调用方法;
await wait(5000);
2. 方法二:同步函数,使用 whlie(){}
或者 for
实现死循环;缺点是 cpu
占用率很高;
原理:
执行死循环,阻塞后续程序的执行,进而实现休眠的假象。
2.1. while
代码实现:
// 函数实现,参数 delay 单位 毫秒 ;
function sleep(delay) {
var start = (new Date()).getTime();
while ((new Date()).getTime() - start < delay) {
// 使用 continue 实现;
continue;
}
}
// 调用方法,同步执行,阻塞后续程序的执行;
sleep(5000);
或者
// 函数实现,参数 n 单位 毫秒 ;
function sleep ( n ) {
var start = new Date().getTime() ;
while ( true ) {
if ( new Date( ).getTime( ) - start > n ) {
// 使用 break 实现;
break;
}
}
}
// 调用方法,同步执行,阻塞后续程序的执行;
sleep(5000);
2.2. for
代码实现:
// 函数实现,参数 delay 单位 毫秒 ;
function sleep(delay) {
for (var t = Date.now(); Date.now() - t <= delay;);
}
// 调用方法,同步执行,阻塞后续程序的执行;
sleep(5000);
3. 方法三:在 node.js
平台调用 linux 系统自带的 sleep 函数;
参考文档:
1.Linux命令之sleep - 延迟指定时间:
https://www.linuxidc.com/Linu...
用途说明:sleep 命令常用于在Linux shell脚本中延迟时间;
常用方式如下,
注意:以下用法中的参数 <n>
可以为小数;
格式:
sleep <n> ;
示例:
sleep <n>s 延迟<n>秒;
sleep <n>m 延迟<n>分钟;
sleep <n>h 延迟<n>小时;
sleep <n>d 延迟<n>天;
示例一
[root@www.linuxidc.com ~]# date; sleep 5; date
2011年 04月 17日 星期日 19:49:23 CST
2011年 04月 17日 星期日 19:49:28 CST
示例二
[root@www.linuxidc.com ~]# date; sleep 1.5m; date
2011年 04月 17日 星期日 19:50:06 CST
2011年 04月 17日 星期日 19:51:36 CST
2.linux中sleep函数的使用和总结:
https://www.cnblogs.com/wuyep...
3.bash之sleep函数:
https://www.cnblogs.com/xiang...
4.linux sleep函数:
https://www.cnblogs.com/jkred...
linux下还有个 delay()
函数,原型为 extern void delay(unsigned int msec);
它可以延时 msec*4
毫秒,
也就是如果想延时一秒钟的话,可以这么用 delay(250)
;
5.关于Linux 中sleep()函数说明:
https://blog.csdn.net/fly__ch...
6.Linux下的延迟函数sleep():
https://blog.csdn.net/nigulas...
在 windows
系统下 sleep(1000)
代表延迟 1 秒,因为 sleep
的参数为 毫秒
;
而在 Linux
系统下 sleep
的参数为 秒
,所以延迟 1 秒 为 sleep(1)
。
代码实现:
// 函数实现,参数单位 秒 ;
function wait(second) {
// execSync 属于同步方法;异步方式请根据需要自行查询 node.js 的 child_process 相关方法;
let ChildProcess_ExecSync = require('child_process').execSync;
ChildProcess_ExecSync('sleep ' + second);
};
// 调用方法;休眠 60 秒,即 1 分钟;
wait( 60 );
4. 方法四:在 node.js
平台调用 shelljs
模块;
参考文档:
https://www.cnblogs.com/cheng...
https://www.cnblogs.com/dashn...
https://blog.csdn.net/weixin_...
https://www.w3cschool.cn/jhnp...
https://blog.51cto.com/138690...
使用方法:
使用 npm
安装 shelljs 模块,引用 shelljs:let shelljs = require('shelljs');
执行命令:shelljs.exec(command,[, options][, callback]);
参数说明:command
: shell 命令;async
:是否异步执行,默认false,
如果存在 callback 回调函数,那么默认值为 true ;slient
:是否输出信息到 console,默认false;encoding
:默认utf8;
代码实现:
// 函数实现,参数单位 秒 ;
function wait(miao) {
let shelljs = require('shelljs');
shelljs.exec( "sleep" + " " + miao , { async : false } ) ;
};
// 调用方法;休眠 60 秒,即 1 分钟;
wait( 60 );
5. 方法五:在 node.js
平台调用 sleep
模块;
参考文档:
node如何休眠几秒:
https://segmentfault.com/q/10...
5.1. 其他同类模块;
https://github.com/luciotato/...
https://github.com/jmar777/su...
https://github.com/creationix...
5.2. sleep
模块使用方法;
sleep
模块官网:
https://www.npmjs.com/package...
Linux 平台安装方法:
cd /home/test/桌面/node && sudo npm install sleep --save
cd /var/www/node && sudo npm install sleep --save
Windows 平台安装方法:
参考文档:
安装node-gyp:https://www.cnblogs.com/wangy...
先在控制台输入:
npm install --global --production windows-build-tools
安装的是:
1、python(v2.7 ,3.x不支持);
2、visual C++ Build Tools,或者 (vs2015以上(包含15))
3、.net framework 4.5.1 ;
就是安装的这三个东西,安装时间有点长,慢慢等;
然后在控制台输入:
npm install -g node-gyp
只需两部就安装好了,安装完成后查看,控制台输入:
node-gyp list
查看安装是否成功。
注意点,本人未测试,需要的同学可自行测试:
在node-gyp安装前,一定是有node.js的,而且一定是32位的,
如果你电脑是windows64位的,并且安装了64位的node.js,那么粗暴的解决办法:直接在官网下载32位node,
然后点击下载文件进行安装,安装的过程中提示你已经安装过了,
这时,你选择替换,一路下一步就可以了。
最后再安装 sleep 模块依赖包:
cd /d C:\Users\%username%\Desktop\server\node && npm install sleep --save
使用方法:
var sleep = require( 'sleep' );
sleep.sleep(n): sleep for n seconds
sleep.msleep(n): sleep for n miliseconds
sleep.usleep(n): sleep for n microseconds (1 second is 1000000 microseconds)
代码实现:
使用方法:
// 参数单位为: 秒数 ;
function wait(haomiao) {
// 将毫秒参数,转换为 秒数 ;
let miao = haomiao / 1000;
let sleep = require('sleep').sleep;
sleep(miao);
};
// 休眠 60 秒,即 1 分钟;范畴上属于同步方法;
wait(60000);
6. 方法六:使用 Atomics.wait
实现代码的 同步
休眠暂停;
代码实现:
以下代码来自于互联网:https://segmentfault.com/a/11... ;
// 函数实现,参数单位 毫秒 ;
var sharedArrayBuffer_for_sleep = new SharedArrayBuffer( 4 ) ;
var sharedArray_for_sleep = new Int32Array( sharedArrayBuffer_for_sleep ) ;
// 同步函数,睡眠 n 毫秒;
var sleep = function( n ) {
Atomics.wait( sharedArray_for_sleep , 0 , 0 , n ) ;
}
// 调用方法;
sleep(5000);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。