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

Quand utiliser Promise.reject au lieu de Throw ?

Patricia Arquette
Libérer: 2024-10-24 05:25:30
original
215 Les gens l'ont consulté

When to Use Promise.reject Instead of Throw?

Promise.reject vs throw : dévoiler les différences

Un dilemme courant dans le développement JavaScript est de comprendre la distinction entre Promise.reject et throwing une erreur. Bien que les deux stratégies puissent être utilisées pour gérer les erreurs, une différence subtile apparaît dans des scénarios spécifiques.

Dans le contexte des rappels de promesse, l'utilisation de throw signale efficacement une erreur et le gestionnaire catch suivant la capturera. Cependant, lorsque vous travaillez en dehors des rappels de promesse, le gestionnaire catch ne sera pas invoqué si throw est utilisé. Pour remédier à cela, Promise.reject doit être utilisé à la place.

Considérez le code suivant :

Utilisation de Promise.reject :

<code class="javascript">return asyncIsPermitted()
    .then(function(result) {
        if (result === true) {
            return true;
        }
        else {
            return Promise.reject(new PermissionDenied());
        }
    });</code>
Copier après la connexion

Utilisation de throw :

<code class="javascript">return asyncIsPermitted()
    .then(function(result) {
        if (result === true) {
            return true;
        }
        else {
            throw new PermissionDenied();
        }
    });</code>
Copier après la connexion

Dans l'exemple ci-dessus, l'approche throw déclencherait le gestionnaire catch dans tout rappel de promesse. Cependant, si asyncIsPerMIT() n'est pas une promesse mais plutôt une fonction qui effectue un traitement asynchrone (en utilisant setTimeout ou similaire), le lancement ne sera pas géré par le catch. Dans de tels cas, Promise.reject doit être utilisé pour garantir que l'erreur est capturée.

Par conséquent, bien que throw puisse être préférable en raison de sa brièveté, Promise.reject offre plus de flexibilité et doit être utilisé lorsque cela est nécessaire pour garantir gestion des erreurs dans des contextes de rappel sans promesse.

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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!