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 相关文章推荐
Js组件的一些写法
Sep 10 Javascript
window.addEventListener来解决让一个js事件执行多个函数
Dec 26 Javascript
使用GruntJS构建Web程序之合并压缩篇
Jun 06 Javascript
javascript中加号(+)操作符的一些神奇作用
Jun 06 Javascript
简单理解JavaScript中的封装与继承特性
Mar 19 Javascript
jQuery toggle 代替方法
Mar 22 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
Angular 4中如何显示内容的CSS样式示例代码
Nov 06 Javascript
利用nginx + node在阿里云部署https的步骤详解
Dec 19 Javascript
video.js 实现视频只能后退不能快进的思路详解
Aug 09 Javascript
Vue路由守卫之路由独享守卫
Sep 25 Javascript
解决vue 表格table列求和的问题
Nov 06 Javascript
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截取字符串并保留完整xml标签的函数代码
2013/02/06 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
理解JavaScript中的对象 推荐
2011/01/09 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
闭包在python中的应用之translate和maketrans用法详解
2014/08/27 Python
Python中的字符串替换操作示例
2016/06/27 Python
Python iter()函数用法实例分析
2018/03/17 Python
Python 实现选择排序的算法步骤
2018/04/22 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
python 堆和优先队列的使用详解
2019/03/05 Python
关于python3中setup.py小概念解析
2019/08/22 Python
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
培训主管的岗位职责
2013/11/23 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
2014年百日安全生产活动总结
2014/05/04 职场文书
房产公证委托书范本
2014/09/20 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
琅琊山导游词
2015/02/05 职场文书
博士导师推荐信
2015/03/25 职场文书
费用申请报告范文
2015/05/15 职场文书
建筑工程催款函
2015/06/24 职场文书
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android