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 无废话系列教程(二) jquery实战篇上
Jun 23 Javascript
checkbox 复选框不能为空
Jul 11 Javascript
JS如何判断移动端访问设备并解析对应CSS
Nov 27 Javascript
javascript实现简易计算器的代码
May 31 Javascript
使用ajaxfileupload.js实现上传文件功能
Aug 13 Javascript
js实现贪吃蛇小游戏(容易理解)
Jan 22 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
原生js实现选项卡功能
Mar 08 Javascript
EL表达式截取字符串的函数说明
Sep 22 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
Feb 20 Javascript
JavaScript函数Call、Apply原理实例解析
Feb 17 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 ajax 分页类代码
2008/11/13 PHP
PHP操作xml代码
2010/06/17 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
出纳岗位职责模板
2013/11/27 职场文书
医学生个人求职信范文
2014/02/07 职场文书
环保宣传标语
2014/06/12 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
岁月神偷观后感
2015/06/11 职场文书
学生安全责任协议书
2016/03/22 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
Python简易开发之制作计算器
2022/04/28 Python