Maison  >  Article  >  interface Web  >  Est-il avantageux de mélanger async/await et .then() en JavaScript ?

Est-il avantageux de mélanger async/await et .then() en JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 07:57:02795parcourir

Is it beneficial to mix async/await and .then() in JavaScript?

Mélanger Async/Await et .then() en JavaScript

Question :

Est-il conseillé d'utiliser les deux async /await et .then().catch() dans la même fonction asynchrone, comme on le voit ci-dessous ?

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

Réponse :

L'utilisation conjointe de async/await et de .catch() peut fournir une gestion concise et efficace des erreurs en JavaScript. Voici pourquoi :

Code compact :

Async/await permet une syntaxe séquentielle de type synchrone dans le code asynchrone, tandis que .catch() gère la gestion des erreurs. En combinant les deux, vous pouvez obtenir une gestion des erreurs propre et cohérente sans avoir besoin de blocs try/catch.

Exemple :

Considérez l'exemple suivant :

<code class="js">async function asyncTask() {
  throw new Error('network')
}

async function main() {
  const result = await asyncTask().catch(error => console.error(error));
  console.log('result:', result)
}

main();</code>

Dans ce code, la fonction asyncTask génère une erreur réseau, qui est gracieusement gérée par le bloc .catch(). L'erreur est imprimée sur la console et le code continue de s'exécuter sans affecter la fonction principale.

Avantages :

Utiliser async/await et .catch() ensemble offre plusieurs avantages :

  • Lisibilité améliorée : Le code est plus facile à comprendre, car la syntaxe async/await imite la programmation synchrone.
  • Gestion des erreurs simplifiée : La gestion des erreurs est centralisée dans le bloc .catch(), offrant une approche cohérente dans toute la base de code.
  • Efficacité accrue : Async/await et .catch() rationalisent la gestion des erreurs en éliminant le besoin de try/catch blocs, réduisant ainsi la quantité de code passe-partout.

Cependant, il est important de noter que mélanger inutilement async/await et .then() peut introduire une complexité inutile et un enfer de rappel potentiel. Par conséquent, il est généralement recommandé d'utiliser async/await et .catch() uniquement lorsque cela est nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn