如何获取可读流'close'



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

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

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

我认为上述情况会导致负载下出现一些不稳定的行为。例如:文件描述符用完、内存泄漏等,因此非常感谢您的帮助。

谢谢。

*)x射线。在盖子下面,它使用enstore,它使用经过改装的require('stream').Readable

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

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

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

相关内容

  • 没有找到相关文章

最新更新