是否可以在nodejs中的“ newListener”事件的事件侦听器回调中发出事件?
例如
var EventEmitter = require('events');
var eventEmitter = new EventEmitter.EventEmitter();
eventEmitter.on('newListener', function(test) {
eventEmitter.emit('data', 'testing');
console.log('newListener');
});
eventEmitter.on('data', function(test){
console.log(test)
});
我确实看到了日志条目“ newListener”,但没有看到针对“数据”的回调。
问题在于,newListener
新的侦听器内部尚未激活。使用process.nextTick()
:
const EventEmitter = require('events');
var eventEmitter = new EventEmitter.EventEmitter();
eventEmitter.on('newListener', function(event) {
if (event === 'data') {
process.nextTick(() => {
eventEmitter.emit('data', 'testing');
});
}
console.log('newListener', event);
});
eventEmitter.on('data', function(test) {
console.log('data', test)
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句