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 相关文章推荐
EasyUI的treegrid组件动态加载数据问题的解决办法
Dec 11 Javascript
基于jQuery的图片左右无缝滚动插件
May 23 Javascript
js中的布尔运算符使用介绍
Nov 20 Javascript
JS根据生日算年龄的方法
May 05 Javascript
判断输入的字符串是否是日期格式的简单方法
Jul 11 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
Feb 23 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
Dec 08 Javascript
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
通过webpack引入第三方库的方法
Jul 20 Javascript
vue axios基于常见业务场景的二次封装的实现
Sep 21 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
Jan 19 Javascript
vue router 组件的高级应用实例代码
Apr 08 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的FTP学习(四)
2006/10/09 PHP
PHP中基本符号及使用方法
2010/03/23 PHP
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
JavaScript 参考教程
2006/12/29 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
HTML的form表单和django的form表单
2019/07/25 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
python处理excel绘制雷达图
2019/10/18 Python
python 装饰器的实际作用有哪些
2020/09/07 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
绩效工资分配方案
2014/01/18 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
出租房屋协议书
2014/09/14 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
赞助商致辞
2015/07/30 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书