我从我正在使用的库中获取可读流(require('stream').Readable
)*。
一般来说,一旦消耗了所有数据,我该如何关闭这个(任何)可读流?我看到end
事件,但从未收到close
事件。
尝试.close()
和destroy()
似乎在require('stream').Readable
上不再有效,而require('fs') streams
则有效。
我相信上述情况会在负载下造成一些不稳定的行为。即:用完文件描述符,内存泄漏等,所以非常感谢任何帮助。
感谢。
答案 0 :(得分:0)
可读流通常不会发出close
(它们会发出end
)。例如,close
事件更多地用于可写流以指示基础文件描述符已被关闭。
一旦消耗了所有数据,就不需要手动关闭可读流,它会自动结束(这在流实现调用push(null)
时完成)。
当然,如果流实现没有清理它在幕后使用的任何资源,那么这就是一个错误,应该在适当的项目问题跟踪器上提交。