Maison > interface Web > js tutoriel > le corps du texte

Pourquoi choisir « retour en attente de promesse » plutôt que « retour de promesse » en JavaScript ?

Susan Sarandon
Libérer: 2024-11-18 07:57:02
original
178 Les gens l'ont consulté

Why Choose `return await promise` over `return promise` in JavaScript?

return wait promise vs. return promise en JavaScript : différences comportementales

Introduction

Quand travaillant avec du code asynchrone en JavaScript, les développeurs utilisent souvent les mécanismes async/wait pour gérer les promesses. Cependant, il existe deux variantes à prendre en compte lors du renvoi d'une promesse dans une fonction asynchrone : return wait promise et return promise. Cet article explore les nuances entre ces approches.

Différences comportementales

Dans la plupart des cas, il n'y a pas de différence notable entre la promesse d'attente de retour et la promesse de retour. Les deux donneront une promesse qui se résout ou se rejette, fournissant le même comportement observable.

Cependant, une distinction devient évidente lors de l'utilisation de blocs try-catch. Prenons cet exemple :

async function rejectionWithReturnAwait() {
  try {
    return await Promise.reject(new Error());
  } catch (e) {
    return 'Saved!';
  }
}
Copier après la connexion

Dans ce cas, return wait garantit que la promesse rejetée est interceptée dans la fonction asynchrone, permettant à la clause catch d'être exécutée et renvoyant une promesse qui se résout en "Enregistré !".

async function rejectionWithReturn() {
  try {
    return Promise.reject(new Error());
  } catch (e) {
    return 'Saved!';
  }
}
Copier après la connexion

En revanche, return promise renvoie directement la promesse rejetée sans l'attendre dans la fonction asynchrone. Cela signifie que le rejet n'est pas capturé par la clause catch et que l'appelant reçoit le rejet à la place.

Implications

Le choix entre la promesse d'attente de retour et la promesse de retour dépend sur le comportement souhaité. Si la gestion des erreurs au sein de la fonction asynchrone est cruciale, la promesse d'attente de retour doit être utilisée pour garantir que les erreurs sont détectées et traitées en conséquence. Sinon, la promesse de retour peut être utilisée pour optimiser les performances en évitant l'imbrication inutile.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal