一、什么是事件循环
首先,node.js的事件循环与JavaScript的略有不同。node中事件循环使node.js可以通过将操作转移到系统内核中来执行非阻塞 I/O操作。由于大多数现代内核都是多线程的,因此它们可以处理在后台执行的多个操作。当这些操作之一完成时,内核会告诉node.js,以便可以适当的回调添加到轮询队列中以最终执行
二、事件循环图解
node.js启动时,它将初始化事件循环,处理提供的输入脚本,这些脚本可能会进行异步API调用,调度计算器,然后开始处理事件循环。
下图显示了事件循环操作顺序的简化概述
三、各阶段概述
四、大厂面试题
async function async1(){
console.log("1")
await async2();
console.log("2")
}
async function async2(){
console.log("3")
}
console.log("4")
setTimeout(()=>{
console.log(5)
},0)
setTimeout(()=>{
console.log("6")
},3)
setImmediate(()=> console.log("7"))
process.nextTick(()=> console.log("8"))
async1()
new Promise(function(resolve){
console.log("9")
resolve()
console.log("10")
}).then(function(){
console.log("11")
})
console.log("12")
// 4 1 3 9 10 12 8
// 2 11
-
关注我,后面继续发表更多底层知识哦!