title: await doesn't seem to wait till the async call is finished
body: <p>I have the async function which uses <code>await</code> calls and I thought that when you use <code>await</code>, it should pause the function execution until the value it received. For some reason, it doesn't work with me. </p>
  
  <p>Here's my function (it is inside a class):</p>
  
  <pre><code>async userExistsInDB(email) {
      let userExists;
      await MongoClient.connect('mongodb://127.0.0.1:27017/notificator', async(err, db) =&gt; {
          if (err) throw err;
  
          let collection = db.collection('users');
          userExists = await collection.find({email: email}).limit(1).count() &gt; 0;
          console.log("INSIDE:\n", userExists);
          db.close();
      });
      console.log("OUTSIDE:\n", userExists);
      return userExists;
  }
  </code></pre>
  
  <p>And here's how I call it in another function inside the same class:</p>
  
  <pre><code>async getValidationErrors(formData) {
     let userExists = await this.userExistsInDB(formData.email);
     console.log("ANOTHER FUNC:\n", userExists);
  }
  </code></pre>
  
  <p>So, I get the following output:</p>
  
  <pre><code>OUTSIDE:
   undefined
  ANOTHER FUNC:
   undefined
  INSIDE:
   true
  </code></pre>
  
  <p>although the value <code>INSIDE: true</code> I expect to get printed the first.</p>
  
  <p>Basically, what I need is to get the boolean value <code>userExists</code> from the <code>userExistsInDB</code> function and use it in other code.</p>
  
  <p>What am I doing wrong here? </p>