gpt4 book ai didi

node.js - 检查 NodeJS ClearTextStream 流是否为 "ended"?

转载 作者:搜寻专家 更新时间:2023-10-31 23:48:46 24 4
gpt4 key购买 nike

我有一个用于 TLS 连接的 ClearTextStream,我想检查是否已经调用了“end”。实际问题是,我正在尝试向流中写入一些内容,但出现“结束后写入”错误。

现在为了避免这种情况,我只想检查“end”是否已经被调用。我确实有一个“关闭”事件,但并非在所有情况下都被触发。

我在 documentation 中找不到它我无法通过谷歌搜索找到类似的东西。

我可以检查错误事件(为我抛出“结束后写入”)并处理那里的情况 - 但真的没有办法在开始时检查这个吗?

谢谢!

最佳答案

如果您遇到write after end 错误,这意味着您正在尝试将数据写入已关闭的Writable 流(即不能接受更多的输入数据)。当可写流关闭时,将发出 finish 事件(参见 the documentation )。另一方面,当底层资源关闭时(例如,当您正在读取的文件描述符关闭时),close 事件由 Readable 流发出。

因为 ClearTextStream 是一个 Duplex 流,它可以发出 closefinish 事件,但是它们不是同一个意思。在您的特定情况下,您应该收听 finish 事件并做出适当的 react 。

另一种解决方案是检查 this.endedthis.finished bool 值(参见 the source code ),但我不建议这样做,因为它们是私有(private)的变量,只反射(reflect)实现细节,不反射(reflect)公共(public) API。

关于node.js - 检查 NodeJS ClearTextStream 流是否为 "ended"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22198883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com