如何获得可读的流'关闭'

时间:2015-11-24 22:09:50

标签: node.js stream

我从我正在使用的库中获取可读流(require('stream').Readable)*。

一般来说,一旦消耗了所有数据,我该如何关闭这个(任何)可读流?我看到end事件,但从未收到close事件。

尝试.close()destroy()似乎在require('stream').Readable上不再有效,而require('fs') streams则有效。

我相信上述情况会在负载下造成一些不稳定的行为。即:用完文件描述符,内存泄漏等,所以非常感谢任何帮助。

感谢。

*)x-ray。在封面下,它使用enstore,使用适应的require('stream').Readable

1 个答案:

答案 0 :(得分:0)

可读流通常不会发出close(它们会发出end)。例如,close事件更多地用于可写流以指示基础文件描述符已被关闭。

一旦消耗了所有数据,就不需要手动关闭可读流,它会自动结束(这在流实现调用push(null)时完成)。

当然,如果流实现没有清理它在幕后使用的任何资源,那么这就是一个错误,应该在适当的项目问题跟踪器上提交。