【发布时间】:2016-11-03 13:16:24
【问题描述】:
我对 Eventemitter 感到困惑。我写了一个代码,但它不能正常工作。为什么下面的代码不起作用:
const EventEmitter = require('events');
const util = require('util');
function MyEmitter() {
EventEmitter.call(this);
this.emit('event');
}
util.inherits(MyEmitter, EventEmitter);
const myEmitter = new MyEmitter();
myEmitter.on('event', function() {
console.log('an event occurred!');
});
// No output!
但是下面的代码有效吗?
const EventEmitter = require('events');
const util = require('util');
function MyEmitter() {
EventEmitter.call(this);
process.nextTick(function () {
this.emit('event');
}.bind(this));
}
util.inherits(MyEmitter, EventEmitter);
const myEmitter = new MyEmitter();
myEmitter.on('event', function() {
console.log('an event occurred!');
});
输出:
an event occured!
【问题讨论】:
标签: javascript node.js eventemitter