title: JavaScript Why is some code getting executed before the rest?
body: <p>I've mostly learned coding with OOPs like Java. </p>
  
  <p>I have a personal project where I want to import a bunch of plaintext into a mongodb. I thought I'd try to expand my horizons and do this with using node.js powered JavaScript. </p>
  
  <p>I got the code working fine but I'm trying to figure out why it is executing the way it is.</p>
  
  <p>The output from the console is: 
  1. done reading file
  2. closing db
  3. record inserted (n times)</p>
  
  <pre><code>var fs = require('fs'),
      readline = require('readline'),
      instream = fs.createReadStream(config.file),
      outstream = new (require('stream'))(),
      rl = readline.createInterface(instream, outstream); 
  
  rl.on('line', function (line) {
  
      var split = line.split(" ");
  
      _user = "@" + split[0];
      _text = "'" + split[1] + "'";
      _addedBy = config._addedBy;
      _dateAdded = new Date().toISOString();
  
      quoteObj = { user : _user , text : _text , addedby : _addedBy, dateadded : _dateAdded};
  
      db.collection("quotes").insertOne(quoteObj, function(err, res) {
      if (err) throw err;
          console.log("record inserted.");
      });
  });  
  rl.on('close', function (line) {
      console.log('done reading file.');
      console.log('closing db.')
      db.close();
  });
  </code></pre>
  
  <p>(full code is here: <a href="https://github.com/HansHovanitz/Import-Stuff/blob/master/importStuff.js" rel="nofollow noreferrer">https://github.com/HansHovanitz/Import-Stuff/blob/master/importStuff.js</a>)</p>
  
  <p>When I run it I get the message 'done reading file' and 'closing db' and then all of the 'record inserted' messages. Why is that happening? Is it because of the delay in inserting a record in the db? The fact that I see 'closing db' first makes me think that the db would be getting closed and then how are the records being inserted still? </p>
  
  <p>Just curious to know why the program is executing in this order for my own peace of mind. Thanks for any insight! </p>