Node.js中事件循环的方法
导读:本文共912.5字符,通常情况下阅读需要3分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: Node 自身的执行模型——事件循环,正是它使得回调函数十分普遍。在进程启动时,Node 便会创建一个类似于while(true)的循环,每执行一次循环体的过程我 们称为Tick。每个Tick的过程就是查看是否有事件待处理,如果有,就取出事件及其相关的回调 函数。如果存在关联的回调函数,就执行它们。然后进入下个循环,如果不再有事件处理,就退 出进程Tick 流程... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。Node 自身的执行模型——事件循环,正是它使得回调函数十分普遍。
在进程启动时,Node 便会创建一个类似于while(true)
的循环,每执行一次循环体的过程我 们称为Tick
。每个Tick
的过程就是查看是否有事件待处理,如果有,就取出事件及其相关的回调 函数。如果存在关联的回调函数,就执行它们。然后进入下个循环,如果不再有事件处理,就退 出进程
Tick 流程图
事件循环是实现 Node.js 非阻塞 I/O 非常重要的一部分! 事件循环,非阻塞 I/O 都是属于LIBUV
这个 C++ 库的底层能力。 理解了 事件循环,非阻塞 I/O 就理解了 Node.js 的异步是怎样运行的!
通过代码模拟 eventloop
consteventloop={queue:[],//循环方法loop(){//不停的检测队列是否还有未循环的消息while(this.queue.length){constcallback=this.queue.shift();callback();}//执行下一次循环//小知识点JS的this绑定setTimeout(this.loop.bind(this),50);},//添加消息到队列add(callback){this.queue.push(callback);},};eventloop.loop();setTimeout(()=>{eventloop.add(()=>{console.log("第一个");});},500);setTimeout(()=>{eventloop.add(()=>{console.log("第二个");});},800);
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
Node.js中事件循环的方法的详细内容,希望对您有所帮助,信息来源于网络。