title: Read exactly n bytes asynchronously
body: <p>I am working on a node.js project. Is it possible to read exactly <code>n</code> bytes asynchronously from a stream?</p>
  
  <p>Usually, if I want to read a stream asynchronously, I use events. The problem is that I need to process the rest of the stream asynchronously, too.</p>
  
  <p>If I listen for the <code>data</code> event, I can use the rest of the stream later, but I cannot control how many bytes I want to read at once. I tried to use <code>unshift</code> to put the unused bytes back into the buffer but this does not seem to fire the <code>data</code> event when another listener is added later.</p>
  
  <p><a href="https://stackoverflow.com/questions/27461310/">This question</a> is similar, but the only answer is a synchronous solution.</p>
  
  <p>Is there an option to limit the number of bytes being passed to the <code>data</code> event listeners? Is it possible to somehow push the bytes back into the stream and still make them accessible through events?</p>