node.js事件轮询机制原理知识点


Posted in Javascript onDecember 22, 2019

借助libuv库实现的

概括事件轮询机制:分为六个阶段

1.timers 定时器阶段

计时和执行到点的定时器回调函数

2.pending callbacks

某些系统操作(例如TCP错误类型)

3.idle,prepare

4.poll轮询阶段(轮询队列)

如果轮询队列不为空,依次同步取出轮询队列中第一个回调函数,直到轮询队列为空或者达到系统最大限制

如果轮询队列为空

如果之前设置过setImmediate函数,直接进入下一个check阶段,如果之前没有设置过setImmediate函数,在当前 poll阶段等待,直到轮询队添加回调函数,就会去第一个情况执行,如果定时器到点了,他也会去下一个阶段

5.check查阶段

执行setImmediate设置的回调函数

6.close callbacks关闭阶段

close事件回调函数

process.nextTick()的意思就是定义出一个动作,pengd并且让这个动作在下一个事件轮询的时间点上执行。能在任意阶段优先执行

以上就是本次介绍的全部知识点内容,感谢大家的学习和对三水点靠木的支持。

Javascript 相关文章推荐
Apply an AutoFormat to an Excel Spreadsheet
Jun 12 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
Javascript中的window.event.keyCode使用介绍
Apr 26 Javascript
输入密码检测大写是否锁定js实现代码
Dec 03 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
Aug 25 Javascript
jquery实现图片上传前本地预览功能
May 10 Javascript
前端分页功能的实现以及原理(jQuery)
Jan 22 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
详解基于 Node.js 的轻量级云函数功能实现
Jul 08 Javascript
Vue中遍历数组的新方法实例详解
Jul 21 Javascript
javascript实现前端input密码输入强度验证
Jun 24 Javascript
vue中使用echarts的示例
Jan 03 Vue.js
javascript实现fetch请求返回的统一拦截
Dec 22 #Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
Dec 22 #Javascript
判断JavaScript中的两个变量是否相等的操作符
Dec 21 #Javascript
javascript中的相等操作符(==与===区别)
Dec 21 #Javascript
JavaScript中的相等操作符使用详解
Dec 21 #Javascript
高性能js数组去重(12种方法,史上最全)
Dec 21 #Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
Dec 21 #Javascript
You might like
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
python机器学习之贝叶斯分类
2018/03/26 Python
python实现简易内存监控
2018/06/21 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
python3下载抖音视频的完整代码
2019/06/05 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
会计毕业生自荐信
2013/11/21 职场文书
关于廉洁的广播稿
2014/01/30 职场文书
工作推荐信范文
2014/05/10 职场文书
保护动物的标语
2014/06/11 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis
mysqldump进行数据备份详解
2022/07/15 MySQL