问题标签 [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 投票
1 回答
420 浏览

events - node.js - 在整个项目中使用事件发射器

只是想知道在多个导出中使用 eventemitter 的最佳方法是什么,而不会使模块彼此过于耦合。

例如,我有处理请求的模块 foo,现在为了分解代码,我有一个单独的模块(栏),它在特定请求进入时执行操作。我想为此使用事件发射器。

任何帮助表示赞赏。

谢谢。

0 投票
1 回答
1692 浏览

events - 可能通过 EventEmitter 锁定 Node.js 中的事件循环

假设以下场景:

在执行“e.emit('myEvent',p1,p2)”的那一刻,我的代码控制着Node主线程(而不是事件循环)。并且“emit”函数是一个同步函数,因此“emit”此时正在调用每个附加到“myEvent”的监听器(在上面的示例中为 N 个监听器)。因此,实际上,调用“e.emit('myEvent', p1, p2)” 等价于在传统的命令式范式中进行以下调用:

如果 N 很大,我会阻塞事件循环,导致我当前的代码控制主线程,而不是事件循环。

这种情况是真实的和可能的吗?是因为这个原因,默认情况下 Node.js 最多有 10 个侦听器吗?

提前致谢!

0 投票
2 回答
26148 浏览

javascript - 在 node.js 中使用 emit 函数

我不知道为什么我不能让我的服务器运行发射功能。

这是我的代码:

听众是:

所有的控制台类型都是这样的:

知道为什么它不会打印'wtf'吗?

0 投票
1 回答
355 浏览

javascript - How would you create a particle SURFACE emitter based on a created canvas shape? HTMLS CANVAS JS

I have a shape (a quarter circle) that I've created using the html canvas function:

  • moveTo
  • LineTo
  • QuadraticCurveTo

How do I go about exploding the shape into particles and then return them to form a circle?

0 投票
6 回答
89003 浏览

node.js - Node.js - 从 EventEmitter 继承

我在很多 Node.js 库中都看到了这种模式:

(来源在这里

有人可以举个例子向我解释一下,为什么这是一种常见的模式,什么时候方便?

0 投票
1 回答
1381 浏览

events - node.js 事件发射器绑定到多个实例

如果我有一个监听事件发射器的类,那么绑定每个实例是错误的做法吗?

如果我多次调用emitter.on(),它会警告我。

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

事件发射器是否意味着每个模块只绑定一次,在类实例之外?

如果这是错误的,那么在触发事件时如何访问类实例?

谢谢

0 投票
1 回答
1633 浏览

node.js - 在 Node.js 中发出事件

我试图在这里同时自学 javascript 和 nodejs 并且无法让自定义事件发出工作。我没有收到任何错误,只是没有看到正在发出的事件。有人能够指出我的(可能是显而易见的)逻辑错误吗?

我在一个单独的模块中声明了一个类:

然后是一个主文件:

0 投票
1 回答
228 浏览

javascript - 允许一个节点进程在其自己的模块之间进行通信的最适合规模的方式是什么?

我已经构建了一个系统,将多个模块加载到“app.js”文件中。每个模块都有一个附加的路由和模式。有时模块需要从另一个模式请求数据。因为我想保持我的代码 DRY,所以我想与另一个模块通信,我想请求某个数据并接收它的响应。

我看过使用以下内容:

  • dnode(RPC 调用)

Dnode 似乎更适合进程间通信——我想将这些内部消息隔离到进程内。

  • 费(Pubsub)

看起来更像是用于进程间通信的东西,也似乎有点矫枉过正

  • 事件发射器

#Node.js 上的某个人建议我远离eventEmitter潜在的大量模块(因此需要大量订阅)

任何建议将不胜感激!

0 投票
21 回答
409266 浏览

node.js - 检测到可能的 EventEmitter 内存泄漏

我收到以下警告:

我在 server.js 中写了这样的代码:

如何解决这个问题?

0 投票
5 回答
15607 浏览

events - NodeJS 等待回调在事件发出时完成

我有一个用 Express 用 NodeJS 编写的应用程序,并且正在尝试使用 EventEmitter 创建一种插件架构,其中插件通过监听发出的事件连接到主代码中。

当插件函数发出异步请求(在这种情况下从 mongo 获取数据)时,我的问题就出现了,这会导致插件代码完成并将控制权返回给原始发射器,然后在插件代码中的异步请求之前完成执行完成。

例如:

主应用:

插入:

我避免将回调函数从“getFromMongo”函数返回到主代码的原因是可能有 0 个或多个插件正在监听该事件。理想情况下,我想要某种方式来等待数据库内容完成,然后再将控制权返回给主应用程序

非常感谢