node事件循环和process模块实例分析
本文实例讲述了node事件循环和process模块。分享给大家供大家参考,具体如下:
1.node.js事件循环
node.js事件可以继续插入事件,如果有事件就继续执行下去,每一次事件处理结束后等待下一个事件的发生;没有要处理的事件了,那整个就结束了;
setTimeout插入一个计时器事件,时间单位为毫秒;
//插入一个事件,让它多长(毫秒)时间以后执行一次
setTimeout(function(){
console.log("settimeout");
},3*1000);//3秒后执行显示settimeout
setInterval插入一个不断循环的计时器事件;
//计时器事件,每隔一段事件触发一次,time的单位是毫秒
setInterval(function(){
console.log("gettimedoing");
},2*1000);//每间隔2秒调用一次
//结果为:
//gettimedoing
//gettimedoing
//gettimedoing
//....
2.process模块属性和事件
process模块用来与当前进程互动,获取相关操作系统相关信息;process是全局变量不需要require导入模块;
属性:process.pid,process.version,process.platform,process.title,process.argv,process.execPath,process.stdout,process.stdin,process.stderr,process.env
//process是node的一个全局模块 console.log(process.pid);//11544 console.log(process.version);//V8.9.0 console.log(process.platform);//WIN32 console.log(process.title);//D:\ProgramFiles\nodejs\node.exe //在启动的时候,我们可以往程序里面传入参数, //参数都是字符串 console.log(process.argv);//结构为数组 //Array(2)["D:\ProgramFiles\nodejs\node.exe","c:\Users\Administrator\Desktop\main1.js"]
exit事件,process.on()
//当我们的node在每次退出的时候,都会抛出一个exit这样一个事件,如果我们用户监听这个事件,那么
//当有exit事件发生的时候,我们之前设置的回掉函数,将会被调用;
//process.on来监听事件
process.on("exit",function(){
console.log("nownodeexit!!!!");
});
uncaughtException事件function(err){};
//当我们发生了一个未知的异常的时候,我们调用这个回掉函数;
//node停止处理当前这个事件,继续等待下一个事件的处理,不会整个退出,
//服务器就不会随意的奔溃
//可以把这个错误,保存起来,方便我们去查找
process.on("uncaughtException",function(err){
console.log("uncaughtExceptioncalled",err);
});
//当我们的程序,如果运行的时候有异常,那么这个时候,我们可以通过捕获异常,
//如果说我们没有捕获的异常,这个uncaughtException
//如果发生uncaughtException,node是会退出的;
//没有主动捕获,所以javascript解释器,他是不会继续执行的;
处理的时候遇到了异常,如果这个异常监听,那么就继续处理下一个事件,否则直接停止退出node;
3.process重要方法
progress.cwd;//获取当前的工作目录
progress.uptime//获取当前进程运行的时间
progress.chdir//设置当前的工作目录;
progress.nextTick//下一次循环的时候调用;
//currentworkdirector当前的工作目录
//./--->C:\Home\workspace\node_js
process.chdir("C:\\Home\\workspace");
//修改我们的工作目录,工作目录默认你的node是在哪个目录下启动的,就是那个目录为你的工作目录
console.log(process.cwd());//c:\Users\Administrator\Desktop
//while处理时间,进入等待时间之前调用,完成后,去事件里面来等待新的事件发生;
process.nextTick(function(){
console.log("nextTick");
});
希望本文所述对大家node.js程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。