⊗jsSpPrmEx 163 of 294 menu

Undtagelsessituationer i promises i JavaScript

Lad os nu lære at håndtere undtagelsessituationer, der er opstået inde i et promise. I tilfælde af en sådan situation skal vi afvise promiset ved hjælp af en speciel afvisningsfunktion, som automatisk indgår i den anden parameter i promise-funktionen:

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

Inde i promise-funktionen skal vi kalde resolve, hvis alt gik normalt, eller reject, hvis der opstod en undtagelsessituation:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // promisets data } else { reject('fejl i promise'); // din fejltekst } }, 3000); });

Dernæst skal du i metoden then videregive ikke én, men to funktioner som parametre: den første vil udløses, hvis promiset udførtes normalt (blev resolved), og den anden - hvis det udførtes med en fejl (blev rejected):

promise.then( function(result) { console.log(result); // vil udskrive promisets resultat }, function(error) { console.log(error); // vil udskrive fejlteksten } );

Som regel skrives ovenstående kode mere kompakt, sådan her:

promise.then(function(result) { console.log(result); // vil udskrive promisets resultat }, function(error) { console.log(error); // vil udskrive fejlteksten });

Lav asynkron kode, som vil generere tilfældige tal fra 0 til 5. Pak det hele ind i et promise. Lad promiset returnere resultatet af division af et med det genererede tal som sit resultat. Lad promiset udføres med en fejl, hvis der skete division med nul, og med succes i alle andre tilfælde.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis