Then is not a function on axios async/await post request

10,443

The await keywords awaits a promise (that means it internally handles the then) but it does not return a promise. Instead await returns the result of the promise.

Therefore, the correct way to do what you want is:

async sendUserData() {
  try {
    const response = await axios.post('/register', {
      email: this.register.email.trim(),
      password: this.register.password.trim(),
    });

    console.log(response);

  } catch (e) {
    console.log(e);
  }
}

However, the async keyword returns a promise. So you should call your function like this:

sendUserData().then(console.log('done'));
Share:
10,443
Axel
Author by

Axel

Updated on June 04, 2022

Comments

  • Axel
    Axel almost 2 years

    I am registering user via a POST request.

    To do this, I am using axios with async/await! However, I am getting register.then is not a function error. Please help me out.

    async sendUserData() {
      try {
        const register = await axios.post('/register', {
          email: this.register.email.trim(),
          password: this.register.password.trim(),
        });
        register.then(
          response => {
            console.log(response);
          }
        );
      } catch (e) {
        console.log(e);
      }
    }