问题标签 [eventemitter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3478 浏览

javascript - 节点 EventEmitter 到 EventEmitter 发射。多个发射器

我正在尝试从一个 EventEmitter 发射到另一个 EventEmitter,或者找到替代解决方案。下面的代码不起作用。

多发射器示例

我正在寻找是否可以进行以下操作,以及我需要对以下代码进行哪些更改才能使其正常运行。或者是否有另一种跨多个发射器发射事件的方式。谢谢你的时间。

0 投票
2 回答
804 浏览

javascript - node.js EventEmitter 和 iife 模式

我有一个特定于javascript而不是node.js的继承的问题:

然后,当我简单地尝试调用时(比如在 main.js 中):

在我打电话之前就产生了一个错误foo.init();

当我选择以 IIFE 模式编码时,是否可以从 EventEmitter 继承?还是我的错误与其他有关?

0 投票
2 回答
2319 浏览

javascript - Node.js EventEmitter 和多级继承

我试图找出使用 Node.jsEventEmitter类时多级继承的最佳方法。

设置是我正在使用可以具有基本控制器的控制器为 Node.js 开发 MVC 框架,但控制器可以发出事件,这些事件也可以在其基本控制器上发出相同的事件。到目前为止,我有:

...但仅输出“在 homeController 上调用请求事件”,我希望触发两个“请求”事件。我该怎么做呢?也许我需要完全改变我的方法?


更新:感谢大家的帮助。正如 Naor Biton 所建议的,baseController 和 homeController 之间没有继承关系,因为“原型”属性只对构造函数很重要。我总是把我的构造函数和对象实例混在一起。

我最终解决了以下问题:

0 投票
3 回答
1437 浏览

node.js - 在 centos 上检测到可能的 EventEmitter 内存泄漏 - nodejs v.0.10.4

我正在尝试使用 Node.js 创建简单的静态文件服务器,即将视频作为视频/mp4(内容类型)提供,以便通过 http 下载。

需要注意的是,文件很大(超过 100mb)

尝试使用推荐用于静态文件服务但不符合我的目的的包 node-serve(并且看起来正在使用阻塞读取)。

我的自定义代码确实有效,但每个请求都会发生内存泄漏,在 10-20 次请求后,进程崩溃并出现以下错误:FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory

每次刷新都会使 node.js 的内存占用增加约 200mb。

在这里查看了关于 node.js 内存泄漏的大多数答案,没有一个答案能解决我的问题,因为它似乎是特定于平台或组合的......而且严格来说不是代码错误,还注意到了开发人员的经验这个问题从 node.js 的 0.6+ 版本开始......

还看到声称它发生在 Express 上的帖子(https://npmjs.org/package/express

使用的代码:

每个请求的完整警告:

在写这篇文章时,我发现了以下问题: NodeJS:如何调试“检测到 EventEmitter 内存泄漏。添加了 11 个侦听器”

这表明这是nodejs核心中的一个错误:(

奇怪的是,在我的 Windows 机器上,它没有发生。除了安装旧版 v0.8.23 之外的任何想法将不胜感激。

0 投票
2 回答
2390 浏览

node.js - 我想要一个跨网络工作的事件发射器

我真的很喜欢 EventEmitter 范例,我想用它在网络上的两个程序之间进行通信。

我想出了自己的SockEmitter,但我想知道:我是不是“做错了(tm)”?是否有一些软件包已经可以做到这一点?是否有不同的范式更适合通过网络进行通信?

这是我所拥有的:

0 投票
1 回答
496 浏览

node.js - EventEmitter 内存泄漏。要求('请求')

在使用 mikael 的请求模块时,我正在运行以下命令:

这是这个的输出:

我为此请求提供了很多 http,因为我希望它解析数千个网页。

有趣的是,我在另一个网站上运行它并没有遇到这个问题(尽管该网站只有 1/10 的页面数量)?

有人知道为什么我会收到事件发射器警告吗?它使脚本随着时间的推移耗尽内存!

0 投票
0 回答
65 浏览

javascript - 无法在调试器中跳入关闭状态

我正在尝试阅读EventEmitter的来源。我想跳入aliasClosure()函数中定义的闭包alias(name)

还:

我写小脚本

并在 FireBug 中的 F11 之后在线设置断点ee.on('foo', l);我正在等待跳转return this[name].apply(this, arguments);但我在控制台中收到错误消息:

恢复调试器:调试循环期间出错:TypeError: firstViewRangeElement is null

如果我在行return this[name].apply(this, arguments); 调试器上设置断点跳过(不要停止)这个断点。我做错了什么?

0 投票
2 回答
23435 浏览

node.js - nodejs中的b / w event.on()和event.once()的区别

我正在测试 plus_one 应用程序,在运行它时,我只是想澄清我对 event.once() 和 event.on() 的概念

这是 plus_one.js

这是 test_plus_one.js

我在使用 child.stdin.on() 时收到一些 maxlistener 偏移警告,但在使用 child.stdin.once() 时情况并非如此,为什么会发生这种情况?

是因为 child.stdin 正在听以前的输入吗?但在这种情况下,应该更频繁地设置 maxlistener 偏移量,但它只会在一分钟内发生一次或两次。

0 投票
1 回答
1312 浏览

javascript - Node.JS 事件发射器 - 内部调用方法

我正在为我的 beaglebone black 编写一个程序,以通过网页控制啤酒酿造过程的某些方面。我正在使用 socket.io 来保持实时通信。为此,我将套接字对象传递给位于硬件类中的操作。一些类,比如我的 temp_sensor 类使用 eventEmitter 模式来允许其他对象订阅它的数据。但是,当我使用 temp_sensor 的方法订阅传入的套接字时,它告诉我对象(this)没有“on”方法。下面是我的代码:

我收到此错误:

/var/lib/cloud9/brewbone/lib/temp_sensor.js:64 this.on("temp_data",function(data) { ^ TypeError: Object has no method 'on' at Array.temp_sensor.actions.subscribe (/var /lib/cloud9/brewbone/lib/temp_sensor.js:64:7)

任何帮助将不胜感激!

0 投票
1 回答
123 浏览

javascript - Javascript 异步事件发射机制

我正在尝试在节点 REPl 中运行此代码

所以它在控制台中给出

这是否意味着事件发射是同步的,并且代码在某种程度上等于: