0
私はEventemitterについて混乱しています。私はコードを書くが、それは正しく動作しません。なぜ下のコードがうまくいかないのですか:イベントジェネレータとnodejsのnexttick
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!