我想知道使用事件在 ExpressJS 内部的函数之间进行通信是否是一个好习惯?如果是,我如何在我的发射事件中发送参数?
最佳答案
这取决于。如果您在函数之间具有真正的异步通信,那么需要考虑事件。 “真正”是指调用函数的执行线程被 setInterval、nextTick 或 syncIO 中断(仅使用回调不一定是异步的)。如果不是这种情况,您将无法使用事件,因为它们将在您的调用函数可以在其上设置监听器之前发出。
事件需要在被调用函数中做更多工作——您需要创建一个 EventEmitter 实例并将其传回,被调用者将在该实例上设置一个监听器。然后你调用的函数发出事件。
如果函数之间的关系是一对一的(请求/回复)并且结果是成功/失败,那么只进行回调会更容易。
如果您的异步调用函数可以多次发出事件或有多个结果,那么事件很适合。
关于参数,请看文档:http://nodejs.org/api/events.html
emitter.emit(event, [arg1], [arg2], [...])
关于javascript - 如何在 Node JS 中使用事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255901/