trying to change .then, like this:
User.prototype.login = () => {
  return new Promise((resolve, reject) => {
    this.cleanup();
    usersCollection
      .findOne({ username: this.data.username })
      .then((attemptedUser) => {
        if (attemptedUser && attemptedUser.password == this.data.password) {
          resolve("logged in");
        } else {
          reject("invalid something");
        }
      })
      .catch(() => {
        reject("Please, try again later");
      });
  });
First one works perfectly, but when I try to change it to async/await, like this:
User.prototype.login = () => {
  return new Promise(async (resolve, reject) => {
    this.cleanup();
    try {
      const attemptedUser = await usersCollection.findOne({ username: this.data.username });
      if (attemptedUser && attemptedUser.password == this.data.password) {
        resolve("logged in");
      } else {
        reject("invalid something");
      }
    } catch {
      reject("Please, try again later");
    }
  });
};
it gives me an error that this.cleanup() is not a function, and after a few tries, I realized that async somehow change "this".
can you please help me, where did I made an error?
 
    