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 相关文章推荐
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 Javascript
IE关闭时判断及AJAX注销案例学习
Feb 18 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
Sep 12 Javascript
JavaScript中的undefined学习总结
Nov 30 Javascript
关闭页面window.location事件未执行的原因及解决方法
Sep 01 Javascript
jQuery实现防止提交按钮被双击的方法
Mar 24 Javascript
javascript 实现map集合
Apr 03 Javascript
jQuery zclip插件实现跨浏览器复制功能
Nov 02 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 Javascript
js cookie实现记住密码功能
Jan 17 Javascript
bootstrap datepicker的基本使用教程
Jul 09 Javascript
angular共享依赖的解决方案分享
Oct 15 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
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
php不用正则采集速度探究总结
2008/03/24 PHP
UCenter Home二次开发指南
2009/05/28 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
js过滤数组重复元素的方法
2010/09/05 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
js轮播图代码分享
2016/07/14 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
JS实现移动端双指缩放和旋转方法
2019/12/13 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
python中的函数用法入门教程
2014/09/02 Python
python遍历目录的方法小结
2016/04/28 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
Django接收自定义http header过程详解
2019/08/23 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
造型师求职自荐信
2013/09/27 职场文书
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
行政专员工作职责
2013/12/22 职场文书
大学生毕业的自我评价分享
2014/01/02 职场文书
安全生产年活动总结
2014/08/29 职场文书
迎新生晚会主持词
2015/06/30 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
python基础之匿名函数详解
2021/04/21 Python
React 高阶组件HOC用法归纳
2021/06/13 Javascript