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 相关文章推荐
在textarea中屏蔽js的某个function的javascript代码
Apr 20 Javascript
jquery dialog键盘事件代码
Aug 01 Javascript
Javascript面象对象成员、共享成员变量实验
Nov 19 Javascript
jQuery autocomplate 自扩展插件、自动完成示例代码
Mar 28 Javascript
两个select多选模式的选项相互移动(示例代码)
Jan 11 Javascript
Jquery中offset()和position()的区别分析
Feb 05 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
Aug 16 Javascript
Javascript 调用 ActionScript 的简单方法
Sep 22 Javascript
Javascript 动态改变imput type属性
Nov 01 Javascript
angular中实现li或者某个元素点击变色的两种方法
Jul 27 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
May 09 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
动态调用CSS文件的JS代码
2010/07/29 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
python判断自身是否正在运行的方法
2019/08/08 Python
浅析python标准库中的glob
2020/03/13 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
放飞蜻蜓反思
2014/02/05 职场文书
财务学生的职业生涯发展
2014/02/11 职场文书
党支部公开承诺书
2014/03/28 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
领导班子整改措施
2014/10/24 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA