How to “emitter.setMaxListeners()”?

How to “emitter.setMaxListeners()”?

本文关键字:setMaxListeners to emitter How      更新时间:2023-09-26

我遇到了与此问题类似的问题:

node.js - request - 如何"emitter.setMaxListeners(("?

用户似乎已经解决了他们的问题,但我不确定他们是如何做到的。("process.setMaxListeners(0("???(什么是"流程"?

我想这个问题上下文中的"过程"仅指某个事件发射器类。事实上,如果你有一些对象是 EventEmitter 并得到同样的错误,你应该在你的代码中添加这样的东西(在添加侦听器之前(:

request.setMaxListeners(0); 

这里可以是请求、进程或导致问题的任何其他对象。但是,有时这样的错误表明设计错误。如果您显示代码,则可以提供更精确的建议。

进程是全局进程。 它是一个事件发射器。 节点.js api 文档是这样说的:

流程对象是全局对象,可以从任何位置访问。它是 EventEmitter 的一个实例。(http://nodejs.org/api/process.html(

您可以执行诸如设置全局事件侦

听器,删除全局事件侦听器,发出全局事件之类的操作,几乎可以使用EventEmitter执行任何操作。

process.on("GlobalEvent", GlobalEventHandler);
process.emit("GlobalEvent");
do something. . .  .
process.removeListener("GlobalEvent", GlobalEventHandler);

使用它将事件从一个模块发送到我在同一整个过程下运行的另一个模块。 这使我能够将它们保留在漂亮的小功能模块中,但仍然能够相互发出事件。