javascript - 如何在 Node JS 中使用事件?

标签 javascript node.js express

我想知道使用事件在 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/

相关文章:

javascript - 无法显示此 svg 图标

javascript - ng-repeat 中表单的 Angular js 验证未按预期工作

javascript - 使用 on_sent_ok 的 Contact Form 7 重定向不起作用?

node.js - index.js 文件中的 Azure Node.js 内部服务器错误

node.js - Jest 模拟子模块功能

node.js - 在 Express.js 中获取静态页面中的 URL 值

php - 使用 Ajax 动态从数据库获取数据,无需刷新间隔

javascript - setTimeout - 回调参数必须是一个函数

node.js - 如何使用 npx 从包运行 cli 命令而不进行全局安装

javascript - lazy.js 和 xml 流解析