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 相关文章推荐
fix-ie5.js扩展在IE5下不能使用的几个方法
Aug 20 Javascript
js判断样式className同时增加class或删除class
Jan 30 Javascript
jquery实现submit提交表单
Feb 03 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
May 18 Javascript
详解Angualr 组件间通信
Jan 21 Javascript
Javascript前端经典的面试题及答案
Mar 14 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
May 11 Javascript
JavaScript类型相关的常用操作总结
Feb 14 Javascript
JavaScript实现简单的计算器
Jan 16 Javascript
JavaScript console的使用方法实例分析
Apr 28 Javascript
理解JavaScript中的Proxy 与 Reflection API
Sep 21 Javascript
JavaScript 中判断变量是否为数字的示例代码
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
检测png图片是否完整的php代码
2010/09/06 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
javascript 函数调用规则
2009/08/26 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
JS回调函数深入理解
2019/10/16 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
Python列表list数组array用法实例解析
2014/10/28 Python
python 读取DICOM头文件的实例
2018/05/07 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
Python新手如何理解循环加载模块
2020/05/29 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
python实现猜拳游戏项目
2020/11/30 Python
易程科技软件测试笔试
2013/03/24 面试题
精细化工应届生求职信
2013/11/17 职场文书
大学生职业生涯规划范文
2013/12/31 职场文书
小学生考试获奖感言
2014/01/30 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
上课随便讲话检讨书
2014/09/12 职场文书
护士求职自荐信范文
2015/03/04 职场文书
电影雷锋观后感
2015/06/10 职场文书
学校证明范文
2015/06/24 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
详解JavaScript中Arguments对象用途
2021/08/30 Javascript