何时在 Node js 中使用 eventEmitter?

2024-02-28

我正在学习 Node js 中的新概念,即事件,但我找不到应该在哪里使用它,我想要任何真实的场景,但我找不到任何关于此的文章或博客。

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 个回调传递给connect()方法但通过使用EventEmitter您有一个更具可读性的代码(至少对我来说),并且它允许您在整个应用程序中拥有多个侦听器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时在 Node js 中使用 eventEmitter? 的相关文章

随机推荐

  • 我应该在onCreate还是onRestoreInstanceState中恢复savedinstancestate?

    我有一个活动启动其他一些活动以获取结果 因此当结果返回时 该活动可能已被销毁并重新创建 也可能没有 我重写了 onSaveInstanceState 以添加需要保存和恢复的数据 当 Activity 被销毁并重新创建时 onCreate 会
  • 在构造函数中初始化列表

    我需要创建一个类 该类还将两个事件列表初始化为新的空列表 我不确定这是否是对我的要求 但我知道如何创建列表以及如何创建构造函数 我创建了 2 个列表 现在我应该创建构造函数 这是我的清单之一 List
  • Android - 键盘消失时仍保留空白

    我的键盘有问题 当它消失时 它所占据的空间仍然是空白 其余布局不会调整 正常屏幕 带键盘 键盘已关闭 我以前从未见过这个 所以我什至不知道从哪里开始寻找 4 2 2 和 5 1 上都会发生这种情况 另一条重要信息是 这是一个包含所有内容的自
  • 每 n 个位置将列表中的项目插入到另一个列表

    我有以下清单 vector 1 2 3 4 5 6 7 8 9 10 inserted elements 2 2 2 2 2 我想通过插入每两个元素来得到以下结果 output 1 2 2 3 4 2 5 6 2 7 8 2 9 10 2
  • 仅连接那些非 NA 的列

    我有一个数据集 某些列的某些行中包含 NA DT lt data table ID c 1 2 1 3 A c NA NA 1 NA 3 B c 4 5 NA 5 6 C c 7 8 NA NA 9 DT ID A B C 1 1 NA 4
  • Android 模拟器 30.4.5 无法在 MacOS 上运行

    系统信息 MacOs 版本 11 3 测试版 Android Studio 版本 4 1 2 Android 模拟器版本 30 4 5 Android HAXM 版本 7 5 1 错误堆栈 emulator Android emulator
  • 为什么指向指针的指针与指向数组的指针不兼容?

    好吧 我无法理解指向指针的指针与指向数组的指针 考虑以下代码 char s Hello World char p1 s char p2 s printf c n p1 Works printf c n p2 Segmentation fau
  • 为什么我不能使用 jQuery 延迟删除调用

    我想要一个 div 淡出然后被删除 div delay 1000 fadeOut 300 div delay 1300 remove 不幸的是 这只是直接删除了 div 没有任何延迟 为什么我无法延迟删除操作 有哪些解决方案 Thanks
  • 如何从 Rails 的范围中构建选择标签

    我想要一个包含值 10 20 30 等直到 100 的下拉列表 在 ruby 中可以通过以下方式完成 10 100 step 10 i p i 我如何将其转换为选择标签 我试过 但这是打印10 11 12 13 100 你几乎已经拥有了
  • 垃圾收集的“孤岛”

    谁能解释一下这个概念隔离岛垃圾收集 对象 A 引用对象 B 对象 B 引用对象 A 对象 A 和对象 B 都没有被任何其他对象引用 那是一座与世隔绝的孤岛 基本上 隔离岛是一组相互引用的对象 但它们不被应用程序中的任何活动对象引用 严格来说
  • 隐藏行后重新应用表条带化 (Twitter Bootstrap)

    我正在使用 Bootstrap 并且有一个条带表 可以通过选择表单上的一些选项来过滤该表 JavaScript 解释表单输入 并隐藏表中与所选条件不匹配的行 但是 这会破坏表上的表条带化 具体取决于隐藏的行 灰色行紧邻灰色行 白色行紧邻白色
  • 使用 JSP 从服务器检索并显示图像

    我有一段代码可以帮助我将图像保存在服务器上 我需要知道如何在 div 上显示保存的图像 JSP代码
  • vis.js 分层布局中的级别排序

    我有一个相当简单的节点层次结构 但是当 vis js 绘制它们时 每个级别上的节点顺序没有多大意义 有很多交叉边 屏幕截图 默认布局 https i stack imgur com Y3VtI jpg 我希望得到与此处给出的布局类似的布局
  • 用于编辑 .fla 文件的免费 Flash IDE

    我们有一个 fla 文件 我们需要一个 IDE 来打开 fla 文件并调试操作脚本 我们尝试了 Flash Develop 开源 但该 IDE 无法打开 fla 文件 是否有任何其他免费 开源 IDE 我们可以用来打开和调试 fla 文件
  • 使用 JQuery Datepicker 仅显示月份

    我希望能够使用JQuery UI 日期选择器 http jqueryui com demos datepicker 允许用户选择特定月份 但无法选择该月中的特定日期 日期选择器上的前进和上一步按钮会将用户带到不同的位置years 而不是不同
  • 需要想法:选择表中的行

    我正在为客户开发一个网站 它需要一种特殊的方式来创建计算 在表中 我必须创建具有相同 End 的行组 由于一开始只有一行 90 日期为 2011 年 11 月 24 日 因此您可以忽略它 例如 我必须选择带有日期的行 2011 年 11 月
  • Xlib 截图调用

    看到问题后如何在Linux中截图 高fps 编程 https stackoverflow com questions 25162580 how to take screenshot high fps in linux programming
  • 是否可以在 SASS 或 LESS 中将一个类或标签别名为另一个类或标签?

    我正在尝试使用 Less 或可能使用 Sass 使我的 bootstrap 2 1 标记更加语义化 考虑 Bootstrap 标准导航栏的以下标记
  • STL自定义分配器来管理不同的内存空间

    我想使用 STL 自定义分配器类的不同实例来管理不同的内存空间 然后能够为 STL 容器指定分配器实例 以便每个容器仅从其分配的内存空间中提取 但我不知道如何才能做到这一点 我了解如何将分配器类型传递到 STL 容器的模板参数中 但我想要类
  • 何时在 Node js 中使用 eventEmitter?

    我正在学习 Node js 中的新概念 即事件 但我找不到应该在哪里使用它 我想要任何真实的场景 但我找不到任何关于此的文章或博客 var events require events var eventEmitter new events