⊗jsSpACEx 158 of 294 menu

Undtagelser i asynkrone callbacks i JavaScript

Lad os antage, at hvis parameteren make modtager et nummer på et ikke-eksisterende array-element - er det en undtagelsessituation. Som du allerede ved, kan undtagelser, der opstår inde i en asynkron funktion, ikke fanges via try-catch. I vores tilfælde vil en undtagelse, der opstår inde i make eller callback-funktionen, ikke blive fanget:

try { make(10, function(res) { console.log(res); }); } catch(err) { // fanges ikke }

I callback-tilgangen arbejder man med undtagelser på følgende måde: den første parameter i callback-funktionen sendes resultatet, og den anden - fejlen. I dette tilfælde foregår fejlhåndtering således:

make(10, function(res, err) { if (!err) { console.log(res); // der opstod ingen fejl, vi udskriver resultatet } else { console.log(err); // der opstod en fejl, vi udskriver dens tekst } });

Lad os omdanne koden i vores funktion make i overensstemmelse med det beskrevne:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // fejltekst } else { err = null; // ingen fejl } callback(arr[num], err); }, 3000); }
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