数据事件处理程序绑定在读取stream中的超越
在读取stream上附加“数据”事件处理程序时出现错误。 如果我把这个处理程序放在代码中提到的其他位置(pipe道之前),我没有看到任何exception。
请帮助我,这里有什么不对?
var Readable = require("stream").Readable; var readStream = new Readable; readStream.on('data',function(chunk){console.log(chunk);}); //Error readStream.push('first data'); readStream.push('second data'); readStream.push(null); //if I place data event handler here, no Error is seen readStream.pipe(process.stdout);
//绑定数据事件处理程序时出错
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 Readable.<anonymous> (_stream_readable.js:745:45) at Readable.EventEmitter.emit (events.js:92:17) at emitDataEvents (_stream_readable.js:771:10) at Readable.on (_stream_readable.js:692:5) at Object.<anonymous> (/home/pk/node/readableStream.js:12:12) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32)
你不能简单地实例化Readable
stream,因为它没有实现有效的_read
方法。 如果你只是想推送一些数据(不执行真正的IO),只需将其设置为noop:
readStream._read = function () {};