title: How to read large binary files in node js without a blocking loop?
body: <p>I am trying to learn some basics of event driven programming. So for an exercise I am trying to write a program that reads a large binary file and does something with it but without ever making a blocking call. I have come up with the following:</p>
  
  <pre><code>var fs = require('fs');
  var BUFFER_SIZE = 1024;
  var path_of_file = "somefile"
  
  fs.open(path_of_file, 'r', (error_opening_file, fd) =&gt;
  {
      if (error_opening_file)
      {
          console.log(error_opening_file.message);
          return;
      }
  
      var buffer = new Buffer(BUFFER_SIZE);
      fs.read(fd, buffer, 0, BUFFER_SIZE, 0, (error_reading_file, bytesRead, buffer) =&gt;
      {
          if (error_reading_file)
          {
              console.log(error_reading_file.message);
              return;
          }
  
          // do something e.g. print or write to another file
      })
  })
  </code></pre>
  
  <p>I know I need to put a while loop in order to read complete file but in the above code I am reading just the first 1024 bytes of the file and cannot formulate how to continue reading the file without using a blocking loop. How could we do it?</p>