当前位置: 首页 > 后端技术 > Node.js

javascript如何在nodejs中实现sleep函数wait

时间:2023-04-03 20:21:11 Node.js

参考文档:JavaScript在nodejs中实现sleep函数wait的方法:https://www.bas369.com/more/l...jssleepImplementation---sleep():https://blog.csdn.net/lwh1379...JS实现sleep几秒,Js中for循环的阻塞机制,setTimeout延时执行:https://blog.csdn.net/wz92555。..欢迎大家访问我的个人导航网站,并设为首页:369公交,永远与你同在!https://www.bas369.com1。方法一:使用异步函数,setTimeout函数await实现代码休眠暂停;代码实现:以下代码来源于网络,具体出处不记得了;//函数实现,参数单位为毫秒;functionwait(ms){returnnewPromise(resolve=>setTimeout(()=>resolve(),ms));};//调用方法;等待等待(5000);2。方法二:同步函数,使用whlie(){}或者for实现死循环;缺点是cpu使用率高;原理:执行死循环,阻塞后续程序的执行,进而实现睡眠的错觉。2.1.whilecodeimplementation://函数实现,参数delay以毫秒为单位;functionsleep(delay){varstart=(newDate()).getTime();while((newDate()).getTime()-startn){//使用break实现;休息;}}}//调用方法,同步执行,阻塞后续程序的执行;睡眠(5000);2.2.对于代码实现://函数实现,参数delay以毫秒为单位;functionsleep(delay){for(vart=Date.now();Date.now()-t<=delay;);}//调用方法,同步执行,阻塞后续程序执行;睡眠(5000);3、方法三:在node.js平台调用linux系统自带的sleep函数;参考文档:1.Linux命令sleep-延时指定时间:https://www.linuxidc.com/Linux...使用说明:sleep命令在Linuxshell脚本中常用于延时;常用方法如下,注意:在下面的用法中参数可以是小数;格式:睡眠;示例:睡眠s延迟秒;睡眠m延迟分钟;睡眠h延迟小时;睡眠;d延迟天;例1[root@www.linuxidc.com~]#date;睡5;date2011-04-17-Sunday19:49:23CST2011-04-17-Sunday19:49:28CST示例2[root@www.linuxidc.com~]#date;睡1.5m;date2011-04-17-Sunday19:50:06CST2011-04-17-Sunday19:51:36CST2.linuxsleep函数的使用与总结:https://www.cnblogs.com/wuyep..3.bash的休眠功能:https://www.cnblogs.com/xiang...4.linux的休眠功能:https://www.cnblogs.com/jkred...还有延迟()函数在linux下,原型为externvoiddelay(unsignedintmsec);它可以延迟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的参数是seconds,所以延迟1秒就是sleep(1)代码实现://函数实现,参数单位为秒;functionwait(second){//execSync是一个同步方法;异步方法请根据需要查询node.js的child_process相关方法;让ChildProcess_ExecSync=require('child_process').执行同步;ChildProcess_ExecSync('sleep'+second);};//调用方法;睡60秒,也就是1分钟;等待(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:letshelljs=require('shelljs');执行命令:shelljs.exec(command,[,options][,callback]);参数说明:command:shell命令;async:是否异步执行,默认为false,如果有回调函数,默认为true;silent:是否向控制台输出信息,默认为false;编码:默认utf8;代码实现://函数实现,参数单位为秒;functionwait(miao){letshelljs=require('shelljs');shelljs.exec("sleep"+""+miao,{async:false});};//调用方法;睡60秒,也就是1分钟;等待(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模块官网:https://www.npmjs.com/package...Linux平台安装方法:cd/home/test/desktop/node&&sudonpminstallsleep--savecd/var/www/node&&sudonpminstallsleep--saveWindows平台安装方法:参考文档:安装node-gyp:https://www.cnblogs.com/wangy...首先在控制台输入:npminstall--global--productionwindows-安装的构建工具:1.python(不支持v2.7、3.x);2.visualC++BuildTools,或(vs2015以上(含15))3..netframework4.5.1;这三个东西都安装好了,安装时间有点长,慢慢等;然后在控制台输入:npminstall-gnode-gyp只需要安装两部分,安装完成后查看,控制台输入:node-gyplist查看是否安装成功注意点,我没测试过,有需要的同学可以自行测试:安装node-gyp之前,必须有node.js,而且必须是32位的,如果你的电脑是Windows是64位的,64位的node.js是安装好了,所以粗略的解决办法:直接从官网下载32位的node,然后点击下载文件进行安装。安装过程中会提示已经安装。这时候,你选择替换,一路下一步就可以了。最后安装sleep模块依赖包:cd/dC:\Users\%username%\Desktop\server\node&&npminstallsleep--save使用方法:varsleep=require('sleep');sleep.sleep(n):sleepfornsecondssleep.msleep(n):sleepfornmilisecondssleep.usleep(n):sleepfornmicroseconds(1secondis1000000microseconds)代码实现:使用方法://参数单位为:秒;functionwait(haomiao){//将毫秒参数转换为秒;设miao=haomiao/1000;让sleep=require('sleep').sleep;sleep(miao);};//休眠60秒,即1分钟;属于类中的同步方法;wait(60000);6、方法六:使用Atomics.wait实现代码的同步休眠和暂停;代码实现:以下代码来源于网络:https://segmentfault.com/a/11..。;//函数实现,参数单位为毫秒;varsharedArrayBuffer_for_sleep=newSharedArrayBuffer(4);varsharedArray_for_sleep=newInt32Array(sharedArrayBuffer_for_sleep);//同步函数,休眠n毫秒;varsleep=function(n){Atomics.wait(sharedArray_for_sleep,0,0,n);}//调用方法;睡眠(5000);以上是我自己的数据总结。