如何将事件与 Node JS 一起使用

how to use events with Node JS?

本文关键字:JS 一起 Node 事件      更新时间:2023-09-26

我想知道使用事件在 ExpressJS 内部的函数之间进行通信是否是一种好的做法?如果是,我如何沿我的发出事件发送参数?

这取决于。如果你在函数之间有真正的异步通信,那么事件是需要考虑的。"Truly"意味着被调用函数的执行线程被 setInterval、nextTick 或 syncIO 中断(只是使用回调不一定是异步的(。如果不是这种情况,则无法使用事件,因为它们将在调用函数可以对其设置侦听器之前发出。

事件需要在被调用的函数中进行更多工作 - 您需要创建 EventEmitter 的实例并将其传回,被调用方将在其上设置侦听器。然后,您调用的函数会发出事件。

如果你的函数之间的关系是一对一的(请求/回复(,结果是成功/失败,那么回调更容易。

如果异步调用的函数可以多次发出事件,或者有多个结果,则事件非常适合。

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

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

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');