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的管道中。如果我错了,请纠正我。是的,您需要在之前进行管道连接,或者删除数据
侦听器