Node.js 检查NodeJS ClearTextStream是否为";结束;?
我有一个用于TLS连接的ClearTextStream,我想检查是否已经调用了“end”。实际的问题是,我试图在流中写入一些内容,但得到了一个“结束后写入”错误 为了避免这种情况,我只想检查是否已经调用了“end”。我确实有一个“关闭”事件,但并非所有情况下都会触发 我在网上找不到它,在谷歌上也找不到类似的东西 我可以检查错误事件(为我抛出“结束后写入”)并在那里处理这种情况——但一开始真的没有办法检查吗Node.js 检查NodeJS ClearTextStream是否为";结束;?,node.js,stream,Node.js,Stream,我有一个用于TLS连接的ClearTextStream,我想检查是否已经调用了“end”。实际的问题是,我试图在流中写入一些内容,但得到了一个“结束后写入”错误 为了避免这种情况,我只想检查是否已经调用了“end”。我确实有一个“关闭”事件,但并非所有情况下都会触发 我在网上找不到它,在谷歌上也找不到类似的东西 我可以检查错误事件(为我抛出“结束后写入”)并在那里处理这种情况——但一开始真的没有办法检查吗 谢谢 如果出现结束后写入错误,则表示您正试图将数据写入已关闭的可写入流(即无法再接受输入数
谢谢 如果出现
结束后写入
错误,则表示您正试图将数据写入已关闭的可写入
流(即无法再接受输入数据)。当可写流关闭时,将发出finish
事件(请参阅)。另一方面,当底层资源关闭时(例如,当您正在读取的文件描述符关闭时),close
事件由Readable
流发出
由于ClearTextStream
是一个Duplex
流,它可以同时发出close
和finish
事件,但它们的含义并不相同。在您的特定情况下,您应该倾听finish
事件并做出适当的反应
另一个解决方案是检查this.ended
和this.finished
布尔值(请参阅),但我不建议这样做,因为它们是私有变量,只反映实现细节,而不是公共API