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 相关文章推荐
设置下载不需要倒计时cookie(倒计时代码)
Nov 19 Javascript
js获取元素在浏览器中的绝对位置
Jul 24 Javascript
图片img的src不变让浏览器重新加载实现方法
Mar 29 Javascript
js实现兼容IE和FF的上下层的移动
May 04 Javascript
浅谈关于JavaScript API设计的一些建议和准则
Jun 24 Javascript
JavaScript 数组- Array的方法总结(推荐)
Jul 21 Javascript
JS对HTML表格进行增删改操作
Aug 22 Javascript
Bootstrap CSS组件之按钮组(btn-group)
Dec 17 Javascript
详解vue数据渲染出现闪烁问题
Jun 29 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
Jul 13 Javascript
ES6中的rest参数与扩展运算符详解
Jul 18 Javascript
Vue代码分割懒加载的实现方法
Nov 23 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中目录,文件操作详谈
2007/03/19 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
php中根据变量的类型 选择echo或dump
2012/07/05 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
利用javascript中的call实现继承
2007/01/22 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
javascript常用功能汇总
2015/07/05 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
2018/12/11 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
Django之模型层多表操作的实现
2019/01/08 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
英国儿童图书网站:Scholastic
2017/03/26 全球购物
环保公益广告语
2014/03/13 职场文书
合作协议书范本
2014/04/17 职场文书
优秀学生评语大全
2014/04/25 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
党支部活动策划方案
2014/08/18 职场文书
教师师德师风整改措施
2014/10/24 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
《西门豹》教学反思
2016/02/23 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS