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学习笔记之jQuery的事件
Dec 22 Javascript
jquery解决图片路径不存在执行替换路径
Feb 06 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
Jan 09 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
Aug 13 Javascript
jQuery中die()方法用法实例
Jan 19 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
Nov 05 Javascript
浅谈jQuery为哪般去掉了浏览器检测
Aug 29 Javascript
Bootstrap源码解读表单(2)
Dec 22 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 Javascript
web页面和微信小程序页面实现瀑布流效果
Sep 26 Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 Javascript
Javascript生成器(Generator)的介绍与使用
Jan 31 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
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
2015/08/20 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
JavaScript实战之菜单特效
2016/08/16 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
python 生成不重复的随机数的代码
2011/05/15 Python
python循环监控远程端口的方法
2015/03/14 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Pandas透视表(pivot_table)详解
2019/07/22 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
2019/08/22 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
汽车驾驶求职信
2013/10/25 职场文书
小学教师管理制度
2014/01/18 职场文书
供货协议书
2014/04/22 职场文书
师范生教育见习总结
2015/06/23 职场文书
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js