2014-12-13 38 views
0

我有一個node.js可讀流,我想讀取前20個字節並對它們進行一些處理,爲處理的數據設置回調或接收承諾。如何等待node.js流中的某些固定數量的字節?

在節點或NPM中的其他地方是否有任何函數可以做到這一點?

例如,它可能是這個樣子:

var stream = getStreamSomehow(); 
readPromise(stream, 20) 
    .then(function(data) { 
    console.log("I have read 20 bytes! %s", data.toString()); 
    }); 

回答

0

與節點的核心是要做到這一點的典型方法調用stream.read(20),檢查是否返回值是null如果是的話,監聽readable事件再次嘗試stream.read(20)。否則,如果返回值不爲空,則它是一個20字節的緩衝區,其中包含來自流的數據。

+0

爲什麼? 「可讀」事件中可能只有10個字節可用。在這種情況下'.read(20)'仍然會返回'null'。 – Alicia 2014-12-13 19:23:42

+0

當然,這是可能的,我想。然後你再聽一遍「可讀」。 – mscdex 2014-12-13 19:59:26

相關問題