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 相关文章推荐
详解new function(){}和function(){}() 区别分析
Mar 22 Javascript
点击标签切换和自动切换DIV选项卡
Aug 10 Javascript
详解AngularJS中的依赖注入机制
Jun 17 Javascript
jQuery实现文件上传进度条特效
Aug 12 Javascript
jQuery实现只允许输入数字和小数点的方法
Mar 02 Javascript
利用jquery实现瀑布流3种案例
Sep 18 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
Dec 27 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
AngularJS常见过滤器用法实例总结
Jul 06 Javascript
如何为你的JavaScript代码日志着色详解
Apr 08 Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 Javascript
JavaScript实现九宫格拖拽效果
Jun 28 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中通过smtp发邮件的类,测试通过
2007/01/22 PHP
测试PHP连接MYSQL成功与否的代码
2013/08/16 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
php 基础函数
2017/02/10 PHP
降低PHP Redis内存占用
2017/03/23 PHP
php 猴子摘桃的算法
2017/06/20 PHP
js左侧三级菜单导航实例代码
2013/09/13 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
Python 的AES加密与解密实现
2019/07/09 Python
python集合删除多种方法详解
2020/02/10 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
大学生自我评价范文分享
2014/02/21 职场文书
团日活动总结报告
2014/06/25 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
楚门的世界观后感
2015/06/03 职场文书
学籍证明模板
2015/06/18 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
Redis如何实现分布式锁
2021/08/23 Redis
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫