事件发射器必须在事件监听器后面嘛?

var events = require"events"
var emitter = new events.EventEmitter emitter.emitgetPageUrls,4
emitter.emitgetPageUrls, 1; emitter.on"getPageUrls", functionfoo{ console.logfoo;
} emitter.emitgetPageUrls,2
emitter.emit"getPageUrls", 3

输出是

2
3

这是因为编译顺序的问题嘛?

因为emitter实现的是同步事件驱动,所以必须在emit之前定义的监听才会执行,如果emitter里使用的是异步事件驱动的话,就不太需要顺序了。

还没有侦听就发射的,当然收不到了。不是编译次序问题,而是运行次序问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注