⊗jsSpACEx 158 of 294 menu

Unntak i asynkrone callbacks i JavaScript

La oss si at hvis parameteren make er passert et nummer for et ikke-eksisterende element i arrayet - dette er en unntakssituasjon. Som du allerede vet, unntak som oppstår inne i en asynkron funksjon, kan ikke fanges via try-catch. I vårt tilfelle vil unntaket som oppstår inne i make eller callback, ikke bli fanget:

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

I callback-tilnærmingen jobbes det med unntak på følgende måte: i den første parameteren til callback sendes resultatet, og i den andre - feilen. I dette tilfellet skjer feilhåndtering på følgende måte:

make(10, function(res, err) { if (!err) { console.log(res); // ingen feil oppsto, skriver ut resultatet } else { console.log(err); // feil oppsto, skriver ut feilteksten } });

La oss endre koden til vår funksjon make i henhold til beskrivelsen:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // feiltekst } else { err = null; // ingen feil } callback(arr[num], err); }, 3000); }
Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis