Node.js 读取流上数据事件处理程序绑定中的异常

Node.js 读取流上数据事件处理程序绑定中的异常,node.js,Node.js,在读取流上附加“数据”事件处理程序时出错。 如果我将这个处理程序放在代码中提到的其他位置(在管道之前),我看不到任何异常 请帮帮我,这里怎么了 var Readable = require("stream").Readable; var readStream = new Readable; readStream.on('data',function(chunk){console.log(chunk);}); //Error readStream.push('first data'); rea

在读取流上附加“数据”事件处理程序时出错。 如果我将这个处理程序放在代码中提到的其他位置(在管道之前),我看不到任何异常

请帮帮我,这里怎么了

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)
events.js:72
投掷者;//未处理的“错误”事件
^
错误:未实现
可读取。_read(_stream_Readable.js:446:22)
at Readable.read(_stream_Readable.js:320:10)
至少可以阅读。(_stream_readable.js:745:45)
位于Readable.EventEmitter.emit(events.js:92:17)
在emitDataEvents(_stream_readable.js:771:10)
at Readable.on(_stream_Readable.js:692:5)
反对。(/home/pk/node/readableStream.js:12:12)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)

您不能简单地实例化
可读的
流,因为它没有实现有效的
\u read
方法。如果只想将某些数据推送到它(而不执行实际IO),只需将其设置为noop:

readStream._read = function () {};

您不能简单地实例化
可读的
流,因为它没有实现有效的
\u read
方法。如果只想将某些数据推送到它(而不执行实际IO),只需将其设置为noop:

readStream._read = function () {};

很好,这是另一个基本问题。如果我添加这个_read函数,数据将在每次push操作后读取,并且没有任何内容将保留到stdout的管道中。如果我错了,请纠正我。是的,你需要在之前进行管道连接,或者删除
数据
监听器太好了,这只是另一个基本问题。如果我添加这个_read函数,数据将在每次push操作后读取,并且没有任何内容将保留到stdout的管道中。如果我错了,请纠正我。是的,您需要在之前进行管道连接,或者删除
数据
侦听器