web-dev-qa-db-fra.com

en utilisant async wait et .then ensemble

Y a-t-il un mal à utiliser async/await Et .then().catch() ensemble tels que:

async apiCall(params) {
    var results = await this.anotherCall()
      .then(results => {
        //do any results transformations
        return results;
      })
      .catch(error => {
        //handle any errors here
      });
    return results;
  }
7
PixelPaul

Si vous utilisez Async/wait, vous n'avez pas besoin de chaîner .then() stockez simplement le résultat retourné par vous resolve() dans une variable (response dans l'exemple) mais si vous voulez gérer les erreurs que vous devez essayer/attraper votre code:

async function f() {

  try {
    let response = await fetch('http://no-such-url');
  } catch(err) {
    alert(err); // TypeError: failed to fetch
  }
}

dans votre promesse, utilisez:

throw new Error("oops!");

Ou

Promise.reject(new Error("Whoops!"));