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 :
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!