在nodejs中的事件处理程序之前调用事件发射器
Calling the event emitter before the event handler in nodejs
我正在经历 this code and I have seen the nodejs event emitter being called before the event handler was defined(this line and this line)。
当我尝试复制相同的内容时,没有处理任何事件。
eventEmitter.emit('event');
eventEmitter.on('event', () => {
console.log('event handled');
});
当您将事件发射器放在事件处理程序之后时
'处理的事件'被记录。
the code on GitHub错了吗?或者它是否仍然有效,因为它在一个模块中,并且有一种导入模块的方式允许它工作?请解释一下。谢谢。
第 44 行的事件发射是在绑定到 ioChat 的 "connection" 事件的处理程序内部,该事件不会在第 181 行绑定 eventEmitter 的 "get-all-users" 事件之前调用。所以即使调用事件的行在前,它不会先被调用。
示例:
eventEmitter.on('connection', () => {
console.log('this should log second');
eventEmitter.emit('someEvent');
});
eventEmitter.on('someEvent', () => {
console.log('this should log third');
});
console.log('this should log first');
eventEmitter.emit('connection');
我正在经历 this code and I have seen the nodejs event emitter being called before the event handler was defined(this line and this line)。
当我尝试复制相同的内容时,没有处理任何事件。
eventEmitter.emit('event');
eventEmitter.on('event', () => {
console.log('event handled');
});
当您将事件发射器放在事件处理程序之后时 '处理的事件'被记录。
the code on GitHub错了吗?或者它是否仍然有效,因为它在一个模块中,并且有一种导入模块的方式允许它工作?请解释一下。谢谢。
第 44 行的事件发射是在绑定到 ioChat 的 "connection" 事件的处理程序内部,该事件不会在第 181 行绑定 eventEmitter 的 "get-all-users" 事件之前调用。所以即使调用事件的行在前,它不会先被调用。
示例:
eventEmitter.on('connection', () => {
console.log('this should log second');
eventEmitter.emit('someEvent');
});
eventEmitter.on('someEvent', () => {
console.log('this should log third');
});
console.log('this should log first');
eventEmitter.emit('connection');