关于 NodeJS 的 Stream 模块中的 readable 事件问题
发布于 14小时前 作者 lipengyu2006 46 次浏览 来自 问答

先帖段简单的代码(t1.js)

process.stdin.on('readable’, function() { var buf = process.stdin.read(3); console.log(buf); process.stdin.read(0); });

然后在终端中运行命令①

(echo abc; sleep 1; echo def; sleep 1; echo ghi) | node t1.js

结果如下:

<Buffer 61 62 63> <Buffer 0a 64 65> <Buffer 66 0a 67> <Buffer 68 69 0a>

然后在终端中运行命令②

(echo abc; echo def; echo ghi) | node t1.js

结果如下:

<Buffer 61 62 63> <Buffer 0a 64 65>

我的问题是: 照成不同结果的原因是什么呢? 为什么不加 sleep 会出现丢失数据的情况? readable 事件为什么会退出?(readable的机制) 命令行管道符问题?

希望哪位高人能够解答

回到顶部