-
-
Notifications
You must be signed in to change notification settings - Fork 32.7k
Closed
Labels
streamIssues and PRs related to the stream subsystem.Issues and PRs related to the stream subsystem.
Description
In the following example sink
should wait for all piped streams to unpipe()
before calling _flush
.
As it currently stands the following code outputs:
$ node test1.js
a
done
If you remove the // applyFix();
comment you get:
$ node test1.js
a
b
done
var through = require('through2');
var tap1 = through.obj();
var tap2 = through.obj();
var sink = through.obj(transform, flush);
var pipes = 0;
// applyFix();
tap1.pipe(sink);
tap2.pipe(sink);
tap1.write('a');
tap1.end();
setTimeout(function(){
tap2.write('b');
tap2.end();
}, 100);
function applyFix(){
sink.on( 'pipe', function(){
pipes++;
});
sink.end = function(){
if( !--pipes ){
sink._flush();
}
};
}
function flush(){
console.log( 'done' );
}
function transform( item, e, next ){
console.log( item );
this.push(item);
next();
}
ref: #89
Qix- and Wandalen
Metadata
Metadata
Assignees
Labels
streamIssues and PRs related to the stream subsystem.Issues and PRs related to the stream subsystem.