如何使用Node JS的事件?

我想知道使用ExpressJS中的函数进行通信是否是一个好的做法? 如果是,我怎样才能发送我的发射事件的参数?

API参考: http : //nodejs.org/api/events.html#events_emitter_emit_event_arg1_arg2

这里是一个例子:

var emitter = new EventEmitter(); emitter.on('stack', function(name, message) { console.log("I got the event", name, message); }); emitter.emit('stack, 'eventName', 'I like arguments'); 

这取决于。 如果你有真正的function之间的asynchronous通信,那么事件是需要考虑的事情。 “真正”意味着调用函数的执行线程被setInterval,nextTick或syncIO中断(只是使用callback不一定是asynchronous的)。 如果情况并非如此,则不能使用事件,因为它们将在您的调用函数可以设置侦听器之前发出。

事件在被调用的函数中需要更多的工作 – 您需要创build一个EventEmitter实例并将其传回,在这个实例上被调用者将设置一个侦听器。 然后你的被调用的函数发出事件。

如果你的函数之间的关系是一对一的(请求/回复),并且结果是成功/失败,那么只需要callback就容易了。

如果asynchronous调用的函数可以多次发射事件,或者有多个结果,那么事件就很适合。

至于参数,请看文档: http : //nodejs.org/api/events.html

 emitter.emit(event, [arg1], [arg2], [...])