关于 NodeJS 的 Stream 模块中的 readable 事件问题
先帖段简单的代码(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的机制) 命令行管道符问题?
希望哪位高人能够解答