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 相关文章推荐
浅谈JavaScript中面向对象技术的模拟
Sep 25 Javascript
浅谈jQuery中的事件
Mar 23 Javascript
包含中国城市的javascript对象实例
Aug 03 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 Javascript
Javascript 跨域知识详细介绍
Oct 30 Javascript
jQuery+pjax简单示例汇总
Apr 21 jQuery
了解VUE的render函数的使用
Jun 08 Javascript
Angularjs中ng-repeat的简单实例
Aug 25 Javascript
基于vue2.0实现简单轮播图
Nov 27 Javascript
简单两步使用node发送qq邮件的方法
Mar 01 Javascript
详解一个基于套接字实现长连接的express
Mar 28 Javascript
JS中实现浅拷贝和深拷贝的代码详解
Jun 05 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
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
smarty的保留变量问题
2008/10/23 PHP
php 生成随机验证码图片代码
2010/02/08 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
2018/07/02 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
Python callable()函数用法实例分析
2018/03/17 Python
django用户登录验证的完整示例代码
2019/07/21 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
集团公司总经理岗位职责
2013/12/20 职场文书
火车的故事教学反思
2014/02/11 职场文书
学校班班通实施方案
2014/06/11 职场文书
医院标语大全
2014/06/23 职场文书
教室布置标语
2014/06/26 职场文书
在职证明格式样本
2015/06/15 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书