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

Node.js writeStream-检测到可能的EventEmitter内存泄漏,node.js,memory-leaks,node.js-stream,Node.js,Memory Leaks,Node.js Stream,我正在创建一个writestream: var file = fs.createWriteStream('path', {flags: 'a+', encoding: 'utf16le'}); 使用,我将此作业排队: file.write(data, 'utf8'); file.on('error', function(error) { console.error('ERROR with file stream', error); }); 收到此警告: (节点)警告:检测到可能的E

我正在创建一个writestream:

var file = fs.createWriteStream('path', {flags: 'a+', encoding: 'utf16le'});
使用,我将此作业排队:

file.write(data, 'utf8');

file.on('error', function(error) {
    console.error('ERROR with file stream', error);
});
收到此警告:
(节点)警告:检测到可能的EventEmitter内存泄漏。增加了11名听众。使用emitter.setMaxListeners()增加限制。

没有使用
setMaxListeners(0)
,有没有解决这个问题的好方法

节点版本:0.10.29

使用file.addListener('error',fn)添加侦听器,使用file.removelListener()在作业完成时删除它。侦听器独立于注册函数而存在,即使添加相同的函数堆栈,它也会被调用两次

function listenerCallback() {
}
file.addListener('error', listenerCallback);
file.removeListener('error', listenerCallback);
删除的侦听器应===与添加的侦听器相同;添加函数(){}然后删除函数(){}不会取消第一个


emitter.once()添加了一个一次性侦听器,但由于它用于错误和不获取工作,因此在这里不合适。

获取所有数据或错误后。 删除侦听器

file.removeAllListeners()文件