Maison > Article > interface Web > Détecter les erreurs de promesse non gérées
Les erreurs
Unhandled Promise peuvent être détectées en écoutant l'événement unhandledrejection.
Afin de garantir la lisibilité, cet article utilise une traduction libre plutôt qu'une traduction littérale, et le code source a été largement modifié. De plus, les droits d'auteur de cet article appartiennent à l'auteur original et la traduction est uniquement destinée à l'apprentissage.
Lors de l'écriture de code asynchrone à l'aide de Promise, utilisez reject pour gérer les erreurs. Parfois, les développeurs l’ignorent généralement, ce qui entraîne la non-gestion de certaines erreurs. Par exemple :
function main() { asyncFunc() .then(···) .then(() => console.log('Done!')); } |
Puisque la méthode catch n'est pas utilisée pour détecter l'erreur, lorsque la fonction asyncFunc() reject, l'erreur générée est Non traitée.
Ce blog expliquera comment détecter les erreurs Promise non gérées dans les navigateurs et Node.js respectivement.
Certains navigateurs (tels que Chrome) sont capables de détecter les erreurs de promesse non gérées.
Écoutez l'événement unhandledrejection pour capturer les erreurs de promesse non gérées :
window.addEventListener( 'unhandledrejection', event => ···);
|
Cet événement estPromiseRejectionEvent instance, qui possède les 2 propriétés les plus importantes :
promise
: rejeter la promesse
reason
: valeur de rejet de la promesse
Exemple de code :
window.addEventListener( 'rejectionhandled', event => ···);
|
Le plug-in de surveillance des erreurs JavaScript de Fundebug écoute l'événement unhandledrejection, de sorte que les erreurs de promesse non gérées peuvent être attrapé automatiquement.
Lorsqu'une erreur de promesse n'est pas gérée initialement, mais est gérée ultérieurement, l'événement rejectionhandled sera déclenché :
process.on( 'unhandledRejection', (reason, promise) => ···); |
Ce event est une instance de PromiseRejectionEvent.
Exemple de code :
process.on('unhandledRejection', reason => { console.log(reason); // 打印"Hello, Fundebug!" }); function foo() { Promise.reject('Hello, Fundebug!'); } foo(); |
Écoute L'événement unhandledRejection peut capturer les erreurs de promesse non gérées :
Exemple de code :
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!