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 相关文章推荐
jQuery 连续列表实现代码
Dec 21 Javascript
JavaScript中的一些定位属性[图解]
Jul 14 Javascript
javascript 函数参数限制说明
Nov 19 Javascript
Js如何判断客户端是PC还是手持设备简单分析
Nov 22 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
jQuery之选择组件的深入解析
Jun 19 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
Feb 07 Javascript
Js的Array数组对象详解
Feb 22 Javascript
js通过classname来获取元素的方法
Nov 24 Javascript
JS高仿抛物线加入购物车特效实现代码
Feb 20 Javascript
常用的几个JQuery代码片段
Mar 13 Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 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中static,const与define的使用区别
2013/06/18 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
使用javascript为网页增加夜间模式
2014/01/26 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
windows下ipython的安装与使用详解
2016/10/20 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
Django REST framwork的权限验证实例
2020/04/02 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
师范毕业生个人求职信
2013/12/09 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
新学期开学演讲稿
2014/05/24 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
导游欢送词
2015/01/31 职场文书
消费者投诉书范文
2015/07/02 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
个人业务学习心得体会
2016/01/25 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android