nodejs新手求教
发布于 5 年前 作者 sxqqslf 2352 次浏览 来自 问答

代码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 回复

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

回到顶部