⊗jsSpACEx 158 of 294 menu

Kivételek aszinkron callback-ekben JavaScriptben

Tegyük fel, hogy ha a make paramétereként egy nem létező tömbelem sorszámát adjuk át - az kivételes helyzet. Ahogyan már tudjátok, az aszinkron függvényen belül keletkező kivételek nem foghatók meg a try-catch blokkal. Esetünkben a make függvényen vagy a callback-en belül keletkező kivétel nem lesz elkapva:

try { make(10, function(res) { console.log(res); }); } catch(err) { // nem kapódik el }

A callback megközelítésben a kivételekkel a következőképpen dolgoznak: a callback első paraméterébe az eredményt, a másodikba pedig a hibát küldik. Ebben az esetben a hibakezelés a következőképpen történik:

make(10, function(res, err) { if (!err) { console.log(res); // nem történt hiba, kiírjuk az eredményt } else { console.log(err); // hiba történt, kiírjuk a szövegét } });

Alakítsuk át a make függvényünk kódját a leírtaknak megfelelően:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // a hiba szövege } else { err = null; // nincs hiba } callback(arr[num], err); }, 3000); }
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás