1

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

node.js - 请求 - 如何“emitter.setMaxListeners()”?

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

4

2 回答 2

3

我认为该问题上下文中的“过程”仅指某些 EventEmitter 类。事实上,如果你有一些 EventEmitter 对象并得到相同的错误,你应该在你的代码中添加类似这样的内容(在添加侦听器之前):

request.setMaxListeners(0); 

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

于 2012-08-28T08:25:52.847 回答
0

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

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

你可以做一些事情,比如设置全局事件监听器,移除全局事件监听器,发出全局事件,几乎所有你可以用 EventEmitter 做的事情。

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

我用它来将事件从一个模块发送到另一个我在同一整体进程下运行的模块。这让我可以将它们保存在漂亮的小功能模块中,但仍然能够相互发送事件。

于 2013-04-04T20:49:34.637 回答