title: Async function in mongoose pre save hook not working
body: <p>Calling an async function in a pre save hook is returning me <code>undefined</code> for the password. Am I fundamentally misunderstanding <code>async</code> here? I've used it successfully in other areas of my app an it seems to be working fine...</p>
  
  <pre><code>userSchema.pre('save', function (next) {
  
    let user = this
  
    const saltRounds = 10;
  
    const password = hashPassword(user)
    user.password = password;
  
    next();
  
  })
  
  
  async hashPassword(user) {
  
      let newHash = await bcrypt.hash(password, saltRounds, function(err, hash) {
  
      if (err) {
        console.log(err)
      }
  
      return hash    
  
    });
  
    return newHash
  
  }
  </code></pre>