我已经写了一些基本的Nodejs代码,其中有
myFunction
process.nextTick()
两个块都是发射事件,代码如下
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
var counter = 1;
emitter.on('message',
(message)=>
{
console.log('Hey I have got this message ' +message);
}
);
emitter.on('syncMsg',
(message)=>
{
console.log('voila the sync message is ' +message);
}
);
function myFunction(){
process.nextTick(
()=>
{
emitter.emit('message','message'+counter);
counter++;
myFunction();
}
)
}
myFunction();
for(var i=0;i<10000;i++)
{
emitter.emit('syncMsg','syncMsg'+counter);
counter++;
}
现在,在执行文件时,即使为syncMsg
事件发出单个事件,也会同步触发message
事件的侦听器。为什么执行同步?
答案 0 :(得分:0)
message
事件只会在事件循环的下一个时钟点发出,这发生在 之后 for
循环(立即发出事件)完成,当前的勾号没有什么可做的。