CNode

nodejs新手求教

问答
Ssxqqslf发布于10 年前最后回复10 年前1 回复3749 浏览0 收藏

代码1: function foo() { console.log('foo'); } process.nextTick(foo); console.log('bar');

代码2: function foo() { console.log('foo'); } foo(); console.log('bar');

第一段代码的输出是 bar foo 第二段代码相反 我想请问 nexttick中 “下一个事件轮询的时间点上执行”这句话的含义,代码1和代码2的事件队列是怎样的(process.nexttick(foo)本身是否是一个事件?) 感激不尽!!

查看回复

回复 (1)

S
showen#1·10 年前

首先代码2不产生事件 就是一个同步执行的过程 代码1中的process.nexttick你现在可以理解是生成了一个事件并把它放在本次“事件轮询”的末尾(也就是你说的下一个“事件轮询”之前) 这个事件的callback就是执行传入的函数 注意“事件轮询”是node里面时时刻刻发生的 每一遍轮询之前和之后都有相应的其它动作 所以才会有“本次轮询”和“下次轮询”的概念

参与回复
登录后即可参与回复。登录