使用可写流作为事件发射器

Using Writable stream as an event emitter

我想知道是否可以使用可写流 (require('stream').Writable) 作为事件发射器。

例如,

   var jsonData = [];

   var strm = new stream.Writable({
        write: function(chunk, encoding, next) {

            jsonData.push(chunk.toString());
            next();
        }

    });


    strm.on('foo',function(msg){
        console.log(msg); //doesn't get called
    });

    strm.emit('foo','bar');  //this doesn't seem to do anything

我认为 Readable/Writable 流是事件发射器,但似乎我真的不能这样使用它们?还想知道我是否通过写入 Writable object/stream.

之外的数组来正确使用 Writable

Streams 确实是事件发射器,您的代码示例在节点 v4.2.4

上运行得非常好
vladmiller:tmp vladmiller$ node test.js
bar

和节点v0.12.7

vladmiller:tmp vladmiller$ node test.js
bar