一、node.js事件循环
1、node.js没有要处理的事件了,整个进程就结束了;事件里面可以继续插入事件,如果有事件是一直要继续下去的,那么node 就不会退出,每一次事件处理结束后等待下一个事件的发生。
2、setTimeout 插入一个 计时器事件,时间单位为毫秒;
// 计时器事件, 每隔一段事件触发一次, time的单位是毫秒
setInterval(function () {
console.log("get time doing");
}, 5 * 1000); // 每间隔5秒调用一次
3、setInterval 插入一个不断循环的计时器事件;
setTimeout(function() {
console.log("set time out");
}, 3 * 1000);
二、progress属性和事件
1、process模块用来与当前进程互动,获取操作系统相关信息;
2、process是全局变量,不需要require;
3、process.pid
process.version
process.platform
process.title
process.argv:在启动时可以往程序里传入参数,参数都是字符串
process.execPath:node所在的路径
process.stdout
process.stdin
process.stderr
process.env:获得系统的环境变量
4、exit事件, process.on()
node每次退出时,都会抛出一个exit事件,如果用户监听这个事件,那么当有exit事件发生的时候,设置的回掉函数将会被调用;
process.on("exit", function() {
console.log("now node exit!!!!");
});
5、uncaughtException事件 function(err) {};
当发生未知异常时,调用回掉函数;node 停止处理当前事件,继续等待下一个事件的处理,不会整个退出,服务器就不会随意的奔溃
,可以把这个错误,保存起来,方便查找。
process.on("uncaughtException", function(err) {
console.log("uncaughtException called ", err);
});
6、处理的时候遇到了异常,如果这个异常监听,那么就继续处理下一个事件,否则直接停止退出node ;
当程序运行时候有异常,可以通过捕获异常,如果说没有捕获的异常,这个uncaughtException如果发生uncaughtException,node是会退出的;没有主动捕获,所以javascript解释器,是不会继续执行的;
三、process重要方法
1、progress.cwd; // 获取当前的工作目录
2、progress.uptime // 获取当前进程运行的时间
3、progress.chdir // 设置当前的工作目录;
4、progress.nextTick // 下一次循环的时候调用;
// current work director 当前的工作目录 ./
//修改工作目录,工作目录默认为node的启动目录
console.log(process.cwd());
// while处理时间,进入等待时间之前调用,完成后,去事件里面等待新的事件发生;
process.nextTick(function() {
console.log("nextTick");
});
notfunction_test();
console.log("after notfunction_test");