node事件循环和process模块实例分析


Posted in Javascript onFebruary 14, 2020

本文实例讲述了node事件循环和process模块。分享给大家供大家参考,具体如下:

1.node.js事件循环

node.js事件可以继续插入事件,如果有事件就继续执行下去,每一次事件处理结束后等待下一个事件的发生;没有要处理的事件了,那整个就结束了;

setTimeout插入一个 计时器事件,时间单位为毫秒;

// 插入一个事件,让它多长(毫秒)时间以后执行一次
setTimeout(function() {
  console.log("set time out");
}, 3 * 1000); //3秒后执行显示 set time out
  setInterval插入一个不断循环的计时器事件;
// 计时器事件, 每隔一段事件触发一次, time的单位是毫秒
setInterval(function () {
  console.log("get time doing");
}, 2 * 1000); // 每间隔2秒调用一次
//结果为:
//get time doing
//get time doing
//get time doing
//....

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:\Program Files\nodejs\node.exe
// 在启动的时候,我们可以往程序里面传入参数,
//参数都是字符串
console.log(process.argv); //结构为数组
//Array(2) ["D:\Program Files\nodejs\node.exe", "c:\Users\Administrator\Desktop\main1.js"]

exit事件, process.on()

// 当我们的node在每次退出的时候,都会抛出一个exit这样一个事件,如果我们用户监听这个事件,那么
// 当有exit事件发生的时候,我们之前设置的回掉函数,将会被调用;
// process.on来监听事件
process.on("exit", function() {
  console.log("now node exit!!!!");
});
  uncaughtException事件 function(err){};
// 当我们发生了一个未知的异常的时候,我们调用这个回掉函数;
// node 停止处理当前这个事件,继续等待下一个事件的处理,不会整个退出,
// 服务器就不会随意的奔溃
// 可以把这个错误,保存起来,方便我们去查找
process.on("uncaughtException", function(err) {
  console.log("uncaughtException called ", err);
});
// 当我们的程序,如果运行的时候有异常,那么这个时候,我们可以通过捕获异常,
// 如果说我们没有捕获的异常,这个uncaughtException
// 如果发生uncaughtException,node是会退出的;
// 没有主动捕获,所以javascript解释器,他是不会继续执行的;

处理的时候遇到了异常,如果这个异常监听,那么就继续处理下一个事件,否则直接停止退出node ;

3.process重要方法

    progress.cwd; // 获取当前的工作目录

    progress.uptime // 获取当前进程运行的时间

    progress.chdir // 设置当前的工作目录;

    progress.nextTick // 下一次循环的时候调用;

// current work director 当前的工作目录
// ./ ---> 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程序设计有所帮助。

Javascript 相关文章推荐
Add a Formatted Table to a Word Document
Jun 15 Javascript
jQuery之字体大小的设置方法
Feb 27 Javascript
jquery实现弹出层效果实例
May 19 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
Jan 12 Javascript
JavaScript实现复制内容到粘贴板代码
Mar 31 Javascript
JS获取url参数、主域名的方法实例分析
Aug 03 Javascript
JS中script标签defer和async属性的区别详解
Aug 12 Javascript
AngularJs表单校验功能实例代码
Feb 09 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
Feb 13 Javascript
angularJS实现动态添加,删除div方法
Feb 27 Javascript
Vue全局loading及错误提示的思路与实现
Aug 09 Javascript
Vue实现开心消消乐游戏算法
Oct 22 Javascript
vue+springboot图片上传和显示的示例代码
Feb 14 #Javascript
JavaScript简单编程实例学习
Feb 14 #Javascript
JS实现打砖块游戏
Feb 14 #Javascript
从零使用TypeScript开发项目打包发布到npm
Feb 14 #Javascript
JavaScript中的this原理及6种常见使用场景详解
Feb 14 #Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
Feb 14 #Javascript
Angular之jwt令牌身份验证的实现
Feb 14 #Javascript
You might like
php define的第二个参数使用方法
2013/11/04 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
js 数组操作代码集锦
2009/04/28 Javascript
JSON 编辑器实现代码
2009/12/06 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
关于vue-cli3打包代码后白屏的解决方案
2020/09/02 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python2中的raw_input() 与 input()
2015/06/12 Python
python实现画圆功能
2018/01/25 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
个人找工作自荐信格式
2013/09/21 职场文书
活动策划邀请函
2014/02/06 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
个人投资合作协议书
2014/10/12 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python