什么时候在Node js中使用eventEmitter?
我在节点js学习新的概念是事件,但我无法find我应该使用这个,我想任何真正的情况下,我找不到任何文章或博客。
var events = require('events'); var eventEmitter = new events.EventEmitter(); //Create an event handler: var myEventHandler = function () { console.log('I hear a scream!'); } //Assign the event handler to an event: eventEmitter.on('scream', myEventHandler); eventEmitter.on('test', function(){ console.log("Testing event"); }); //Fire the 'scream' event: eventEmitter.emit('scream'); eventEmitter.emit('scream'); eventEmitter.emit('test');
我可以通过简单的调用函数myEvenHandler()
来实现同样的事情?
是的,在你的情况下,你可以调用myEventHandler()
,但这是一个天真的例子。 想象一下,你想听一个发射器的不同事件。 例如,在Mongoose数据库库中:
mongoose.connect(databaseUrl); mongoose.connection.on('connected', function () { //connected successfully }); mongoose.connection.on('error',function (err) { //connection error }); mongoose.connection.on('disconnected', function () { //disconnected });
你可以传递3个callbackconnect()
方法,但通过使用EventEmitter
你有一个更可读的代码(至less,对我来说),它允许你有几个监听器在整个应用程序。