问题标签 [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 回答
1797 浏览

node.js - 结合 NodeJS 流时如何调用`setMaxListeners`

我正在使用 gulpjs 来捆绑 css 文件集。每个集合都捆绑到自己的文件中,因此我的代码如下所示:

所以它工作正常,但现在我的包已经足够大,我看到以下错误:

(节点)警告:检测到可能的 EventEmitter 内存泄漏。增加了 11 位听众。使用emitter.setMaxListeners() 增加限制。

我试图应用这样的答案和这个我似乎无法弄清楚在哪里打电话。setMaxListeners(0)

setMaxListeners合并流时如何调用?

0 投票
1 回答
142 浏览

javascript - 使用事件发射器触发的事件是否保持顺序

我对事件发射器几乎没有疑问,但这对于可能的程序逻辑非常重要。

我正在使用一些外部库来触发我正在收听的事件。假设它触发 2 个事件:“数据”和“错误”。假设 lib 将始终在error之前调用data,如下所示:

问题是:我可以 100% 确定数据事件总是在我的监听方法中的错误事件之前出现吗?:

谢谢,

伊万

0 投票
2 回答
384 浏览

javascript - 这两种构造函数模式有什么区别?

对比

EventEmitter.call(this) 是否需要这样做?

0 投票
2 回答
328 浏览

node.js - 在节点中发出带有回调作为参数的事件是不好的做法吗?

在节点中发出带有回调作为参数的事件是不好的做法吗?

编辑:写完这个问题后,我意识到通过为可以被多个侦听器截获的事件提供持续回调会破坏目的,所以我认为我不会采用这种方法。

0 投票
2 回答
586 浏览

javascript - node.js 事件发射器是否必须绑定到自定义对象才能有效使用它们?

在 node.js 中,为什么一些事件发射器的示例看起来很简单,如下所示:

然后 ee1 用于发出和监听事件。

其他示例如下所示:

然后 ee2 用于发出和监听事件。

您可以使用 ee1 来处理所有事件(在您想要的任何地方发出它们,例如在您的自定义对象中。)。将事件发射器原型绑定到您自己的自定义对象/函数的原因是什么?

0 投票
1 回答
442 浏览

javascript - 事件发射器 JavaScript

此代码块发出一个事件并传递一个整数:

但是,当它开始接收事件时:

indexNaN。_ 请问有人可以告诉我错误在哪里吗?我猜这可能是在on事件总线的情况下。

0 投票
1 回答
2677 浏览

javascript - $state 或 $location 更改时的 Angular ui.router 无限循环

在过去的 4 个小时里,我正在努力调试和阅读互联网上的所有问题,这可能是什么问题。

所以,我正在模拟一个移动应用程序,我的逻辑是这样的:

  1. 如果用户过去登录过,我们在 localStorage 中有关于此的数据,然后向他显示列表。这是离线
  2. 如果我们连接到互联网,首先显示列表并在后台检查他是否仍然登录
  3. 如果他不是,则重定向到登录页面。

在主 Home 视图中,我正在评估上述语句,首先我向他显示列表(如果他有 localStorage 数据),然后我在线查看并在必要时重定向到登录。

每当我有两个 $state 或 $locations 它循环。就像浏览器几乎死机一样,幸运的是 Chrome。我得到了Cannot call method 'insertBefore' of null。从我读到的,一个已知的 angular.ui 路由器问题,如果使用不好或其他一些神秘问题。

一些代码:

这些事件发射器和接收器,我在状态管理服务的返回中调用它们

. . 。逻辑

...返回我的服务

这是在我的控制器中:

我究竟做错了什么?

我已经调试了发射器,我的 check() 函数创建了所有发射器,我在 ui.router 上尝试了几种组合,但我失败了:)。

0 投票
0 回答
79 浏览

javascript - 用自定义的 EventEmitter 替换原来的 EventEmitter

考虑我想使用EventEmitter2,或者我自己的一些实现EventEmitter。但是,如果我只是这样做EventEmitter = MyEventEmitter,它仅有助于在此声明之后发生的显式继承,但显然不会更改从 builtin 继承的现有对象EventEmitter,并且仅限于模块的范围。

EventEmitter使用内置对象时可以利用替代s 吗?我可以想到任何特定对象的原型链的下降,如果原型似乎是 的实例EventEmitter,则将其替换为我自己的,但没有更优雅的方法吗?

0 投票
2 回答
603 浏览

node.js - 使用 process.nextTick 发出事件是否优先于按顺序发出?

在 node.js 中有很多发送和监听事件。

我正在尝试决定是否应该内联发出事件然后从函数返回,或者我是否应该通常使用 process.nextTick 发出导致它们稍后运行的事件。

一般来说,哪种方法是正确的(最好的)方法?

有人告诉我,node.js 的内置模块大多使用 process.nextTick。

0 投票
1 回答
646 浏览

node.js - 本地 eventEmitter 监听全局 eventEmitter

我几乎把问题标题写成——在 eventEmitters 之间进行通信

我有一个全局范围内的 node.js 模块(X)(它使用 eventEmitter)。然后我有每个套接字本地的代码(用户连接)。

现在我在全局变量 G={'X':X} 上携带 X 通过进程,以便套接字可以像这样访问 X:

这是愚蠢的!现在,每次我启动我的服务器时,它似乎都运行良好(我收到了事件),但是如果我刷新页面并发出一个事件,我会得到它两次。如果我再次刷新页面,我会收到 3 次事件。

我认为我将侦听器绑定到同一个全局的 eventEmitter。

如何制作一个单独的本地 eventListener 来监听全局 eventEmiter 的发射?

我知道如何设置 eventEmiter:

但它没有捕捉到另一个事件......

我也尝试使用 eventEmitter 复制模块

但它仍然接收多个事件。