使用Writable流作为事件发射器

时间:2016-02-03 21:23:19

标签: node.js pipe jsonstream

我想知道是否可以使用可写流(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

我认为可读/可写流是事件发射器,但似乎我不能用这种方式真正使用它们?还想知道我是否通过写入Writable对象/流之外的数组正确使用Writable。

1 个答案:

答案 0 :(得分:1)

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

上完美运行
vladmiller:tmp vladmiller$ node test.js
bar

和节点v0.12.7

vladmiller:tmp vladmiller$ node test.js
bar