使用可写流作为事件发射器
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
我想知道是否可以使用可写流 (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.
之外的数组来正确使用 WritableStreams 确实是事件发射器,您的代码示例在节点 v4.2.4
vladmiller:tmp vladmiller$ node test.js
bar
和节点v0.12.7
vladmiller:tmp vladmiller$ node test.js
bar