2014-02-13 25 views
3

我運行一些代碼的命令與節點; 這是對錯誤時,這樣的代碼:Nodejs可讀流推送使用

> var rs = new require('stream').Readable(); 
> rs.push("123");rs.push(null); // two pushes are in the same row; 

但這是錯誤:

> var rs = new require('stream').Readable(); 
> rs.push("123"); // I went them are not in the same row; 
// then get a error, like : 
events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: not implemented 
    at Readable._read (_stream_readable.js:446:22) 
    at Readable.read (_stream_readable.js:320:10) 
    at maybeReadMore_ (_stream_readable.js:431:12) 
    at _stream_readable.js:422:7 
    at process._tickCallback (node.js:415:13) 

我需要這樣的代碼:

var rs = new require('stream').Readable(); 
rs.pipe(someWriteAbleStream) 
// some time later 
rs.push(somedata); 
// some time late 
rs.push(somedata); 
// ... 
rs.push(null); 

感謝;

+0

閱讀文檔:http://nodejs.org/api/stream.html#stream_class_stream_readable_1 –

+0

謝謝。我失去了_read方法 – user3305221

+0

@ user3305221你可以把它作爲一個可接受的答案嗎? – bubakazouba

回答

2

因爲,如果你沒有rs.push(null),那麼cache就是null,所以rs調用.read()來讀取。

if rs.push(null),意思就是說完成了。