前几篇的互相比较来比较去的,是不是都有点乱了思绪,今天来做个小复习,从DAY5: node 的内部机制(一)到DAY10: setTimeout和setImmediate的比较做个简单总整理。
不会
去一直检视内核状态会不断地检视内核的状态。
总共有六个不同阶段,每个阶段都有自己的回调函数,处理着不同的事件,依序是:
1. timers:
setTimeOut()
、setInterval()
的回调。2. I/O callbacks:
3. poll:
setImmediate()
):当定时时间到,就执行定时的回调方法与setImmediate()
,事件循环会跳出poll阶段,进入check阶段执行setImmediate()
的回调方法。setImmediate()
,事件循环进入等待新事件产生。4. idle,prepare:
5. Check:
setImmediate()
setImmediate()
的回调,而占据事件循环的一个阶段。6. Close callbacks:
Process.nextTick():
setImmediate():
setTimeout():
setImmediate()
一同出现的话,setImmediate()
先被执行。三者优先顺序:
process.nextTick > setTimeout > setImmediate
实际例子:
//大乱斗
process.nextTick(()=>
{
console.log("nextTick!! I'm NO.1 ");
},);
require('fs').readFile("butterfly.txt",function(Nicole)
{
setImmediate(function(Nicole)
{
console.log("immediate !! I'm NO.2");
});
setTimeout(function(Nicole)
{
console.log("Timeout I'm NO.3");
},0);
});
执行结果:
OpenGL有很多library,在建置环境之前,我们需要了解要下载什麽东西 这边我们选择了GLFW...
近期将依些老程序转移至微服务上, 因为原本程序使用了大量 out 语法, 为了能够让微服务的 API...
前言 前面两天刻了两个 view, 现在要用 Navigation 来把它们连接起来。 实作 在 R...
终於要回到正轨了 其实参加这个系列 主要是期许自己 在忙碌的工作之余 还可以每天现做便当 自从上个中...
图片来源 继续延续前几篇的话题, 好巧不巧本月(2021年10月)刚出刊的专案经理杂志的封面故事,...