NodeJS文档提到了流动/非流动模式(在ReadableState
中)。以下摘录进一步说明了一次可读流可能处于的不同可能状态。 (https://nodejs.org/api/stream.html#stream_three_states)
Specifically, at any given point in time, every Readable is in one of three possible states:
readable._readableState.flowing = null
readable._readableState.flowing = false
readable._readableState.flowing = true
我将不胜感激任何提供更多解释的参考资料。我对每个州的特征/行为特别好奇;哪些动作会触发不同状态之间的转换?此外。
如果我没看错,那么在流模式下:流将主动生成数据,而在非流模式下:流将不会生成任何数据,直到调用
r.read(size)
为止。非流动模式和暂停模式之间有什么区别吗?
r.isPaused()
时,_readableState.flowing == null
为false。 最佳答案
最好的选择可能是在github上的源/库中搜索“ flowing”。
可读流有效地在以下两种模式之一中运行:
停顿了。在流动模式下,从
基础系统自动提供给应用程序
通过…显式地使用事件来尽可能快地读取
流中的大量数据。所有[可读] []个流
以暂停模式开始,但可以切换为流动
https://github.com/nodejs/node/search?q=flowing&type=Code&utf8=%E2%9C%93