一尘不染

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

node.js

当我使用node.js’request’模块对某个URI进行GET时;

var options = {uri:"aURI", headers:headerData};
request.get(options, function (error, response, body) {
}

错误消息是:

[Error: Exceeded maxRedirects. Probably stuck in a redirect loop.]

并且还有以下消息:

"(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit."

我该怎么办setMaxListeners


阅读 1031

收藏
2020-07-07

共1个答案

一尘不染

我强烈建议不要使用以下代码:

process.setMaxListeners(0);

没有合理的警告。在大多数情况下,这是因为代码中隐藏了错误。取消限制将消除警告,但不会消除其原因,并防止警告您资源泄漏的源头。

如果您出于正当理由达到了限制,请在函数中输入一个合理的值(默认值为10)。

同样,要更改默认值,也不必弄乱EventEmitter原型。您可以像这样设置defaultMaxListeners属性的值:

require('events').EventEmitter.defaultMaxListeners = 15;
2020-07-07