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 相关文章推荐
Javascript 浮点运算的问题分析与解决方法
Aug 27 Javascript
js调用css属性写法
Sep 21 Javascript
jQuery控制iFrame(实例代码)
Nov 19 Javascript
javascript不同类型数据之间的运算的转换方法
Feb 13 Javascript
JS动态修改iframe高度和宽度的方法
Apr 01 Javascript
实例解析jQuery中proxy()函数的用法
May 24 Javascript
JS中mouseup事件丢失的原因与解决办法
Jun 14 Javascript
node.js 发布订阅模式的实例
Sep 10 Javascript
vue-music关于Player播放器组件详解
Nov 28 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
解决layui动态加载复选框无法选中的问题
Sep 20 Javascript
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 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 session安全问题分析
2011/06/24 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
nodejs基础应用
2017/02/03 NodeJs
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
js实现时间日期校验
2020/05/26 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
Python实现统计代码行的方法分析
2017/07/12 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
Python通过len函数返回对象长度
2020/10/22 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
软件测试题目
2013/02/27 面试题
学校消防演习方案
2014/02/19 职场文书
《山谷中的谜底》教学反思
2014/04/26 职场文书
会议室标语
2014/06/21 职场文书
低碳生活的宣传标语
2014/06/23 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
清洁员岗位职责
2015/02/15 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS
详解Spring Bean的配置方式与实例化
2022/06/10 Java/Android
Vue深入理解插槽slot的使用
2022/08/05 Vue.js