1
有一個代碼,我在這裏找到https://github.com/substack/stream-handbook它從流中讀取3個字節。我不明白它是如何工作的。流讀取(0)指令
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 consume.js
它返回:
<Buffer 61 62 63>
<Buffer 0a 64 65>
<Buffer 66 0a 67>
<Buffer 68 69 0a>
首先,我爲什麼需要這個東西.read(0)
?是不是流有一個緩衝區,其餘的數據被存儲,直到我請求.read(size)
?但沒有.read(0)
它會打印
<Buffer 61 62 63>
<Buffer 0a 64 65>
<Buffer 66 0a 67>
爲什麼?
第二個是這些sleep 1
說明。如果我調用腳本沒有它
(echo abc; echo def; echo ghi) | node consume.js
它會打印
<Buffer 61 62 63>
<Buffer 0a 64 65>
無論將我用.read(0)
與否。我完全不理解這一點。這裏用什麼邏輯來打印這樣的結果?