- Version: v14.5.0
- Platform: Ubuntu/Linux
- Subsystem: stream
letstream=require('stream');letsrc=newstream.Readable({read(){console.log('push')this.push(Buffer.alloc(20000));}});letdst=newstream.Transform({transform(chunk,output,fn){this.push(null);fn();}});src.pipe(dst);functionparser_end(error){console.log('parser ended',error);dst.removeAllListeners();}dst.once('data',data=>console.log(data));dst.once('end',()=>parser_end());dst.on('error',error=>parser_end(error));- Expected behavior (tested on node v10, 12):
end event is emitted by dst, transform stops, source pauses. - Actual behavior (tested on node v14):
end event does not get emitted by dst, transform runs indefinitely.
endevent is emitted bydst, transform stops, source pauses.endevent does not get emitted bydst, transform runs indefinitely.