⊗jsSpPrmEx 163 of 294 menu

Situations exceptionnelles dans les promesses en JavaScript

Apprenons maintenant à gérer les situations exceptionnelles survenues à l'intérieur d'une promesse. En cas de survenue d'une telle situation, nous devons rejeter la promesse à l'aide d'une fonction de rejet spéciale, qui est automatiquement passée en second paramètre de la fonction de la promesse :

let promise = new Promise(function(resolve, reject) { setTimeout(function() { ... }, 3000); });

À l'intérieur de la fonction de la promesse, nous devons appeler resolve si tout s'est passé normalement, ou reject si une situation exceptionnelle est survenue :

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // données de la promesse } else { reject('erreur dans la promesse'); // votre texte d'erreur } }, 3000); });

Ensuite, dans la méthode then, vous devez passer non pas une, mais deux fonctions en paramètres : la première fonctionnera si la promesse s'est exécutée normalement (s'est résolue), et la seconde - si elle s'est exécutée avec une erreur (a été rejetée) :

promise.then( function(result) { console.log(result); // affichera le résultat de la promesse }, function(error) { console.log(error); // affichera le texte de l'erreur } );

En règle générale, le code ci-dessus est écrit de manière plus compacte, comme ceci :

promise.then(function(result) { console.log(result); // affichera le résultat de la promesse }, function(error) { console.log(error); // affichera le texte de l'erreur });

Créez un code asynchrone qui générera des nombres aléatoires de 0 à 5. Enveloppez le tout dans une promesse. Que la promesse renvoie comme résultat le résultat de la division de un par le nombre généré. Que la promesse soit exécutée avec une erreur si une division par zéro a eu lieu, et avec succès dans tous les autres cas.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser