const EventEmitter = require('events');
let emitter = new EventEmitter();
emitter.on('myEvent', function sth () {
console.log('hi');
});
setTimeout(()=>{
emitter.on('myEvent', function(){
console.log('fuck');
});
},1000);
emitter.emit('myEvent');
const EventEmitter = require('events');
let emitter = new EventEmitter();
emitter.on('myEvent', function sth () {
emitter.on('myEvent', function(){
console.log('fuck');
});
console.log('hi');
});
emitter.emit('myEvent');
const EventEmitter = require('events');
let emitter = new EventEmitter();
emitter.on('myEvent', function sth () {
console.log('hi');
});
emitter.on('myEvent', function(){
console.log('fuck');
});
emitter.emit('myEvent');
以上三种方式,返回三个不同的结果,想请问是为什么?
第一个:输出hi;因为触发myEvent时,延时中的第二个myEvent事件还没有添加进去。
第二个:输出hi;触发myEvent后,第二个myEvent事件才添加进去。
第三个:输出hi fuck;两个myEvent事件都添加上了。
如果输出结果和我说的不一致,请指正。