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 object and DOM element
Apr 15 Javascript
JavaScript中的setMilliseconds()方法使用详解
Jun 11 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
Oct 08 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
Jul 28 Javascript
AngularJS控制器之间的通信方式详解
Nov 03 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 Javascript
微信JS-SDK选取手机照片上传功能
Apr 21 Javascript
JavaScript输出所选择起始与结束日期的方法
Jul 12 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
Jun 04 Javascript
在vue中给列表中的奇数行添加class的实现方法
Sep 05 Javascript
js单线程的本质 Event Loop解析
Oct 29 Javascript
node中使用shell脚本的方法步骤
Mar 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/08/19 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
destoon找回管理员密码的方法
2014/06/21 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
js中this的用法实例分析
2015/01/10 Javascript
Javascript基础教程之argument 详解
2015/01/18 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
Python入门学习之字符串与比较运算符
2015/10/12 Python
浅析Python编写函数装饰器
2016/03/18 Python
Python3 socket同步通信简单示例
2017/06/07 Python
Python socket实现简单聊天室
2018/04/01 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
使用python模拟命令行终端的示例
2019/08/13 Python
python实现canny边缘检测
2020/09/14 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
党员志愿者服务倡议书
2015/04/29 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
js Proxy的原理详解
2021/05/25 Javascript