数据事件处理程序绑定在读取流上的异常

P K*_*P K 1 node.js

我在读取流上附加'data'事件处理程序时收到错误.如果我把这个处理程序放在代码中提到的其他地方(管道之前),我没有看到任何异常.

请帮帮我,这里有什么不对?

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);
Run Code Online (Sandbox Code Playgroud)

//绑定数据事件处理程序时出错

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)
Run Code Online (Sandbox Code Playgroud)

vku*_*kin 6

您不能简单地实例化Readable流,因为它没有_read实现有效的方法.如果您只想将一些数据推送到它(不执行实际IO),只需将其设置为noop:

readStream._read = function () {};
Run Code Online (Sandbox Code Playgroud)