⊗jsSpACEx 158 of 294 menu

Izuzeci u asinhronim callback-ovima u JavaScript-u

Neka, ako je parametrom make prosleđen broj nepostojećeg elementa niza - to je izuzetna situacija. Kao što već znate, izuzeci koji nastanu unutar asinhrone funkcije, ne mogu biti uhvaćeni preko try-catch. U našem slučaju izuzetak, koji nastane unutar make ili callback-a, neće biti uhvaćen:

try { make(10, function(res) { console.log(res); }); } catch(err) { // neće biti uhvaćen }

U callback pristupu sa izuzecima se radi na sledeći način: u prvi parametar callback-a šalje se rezultat, a u drugi - greška. U ovom slučaju obrada grešaka se dešava na sledeći način:

make(10, function(res, err) { if (!err) { console.log(res); // greška nije nastala, ispisaćemo rezultat } else { console.log(err); // greška je nastala, ispisaćemo njen tekst } });

Hajde da preinačimo kod naše funkcije make u skladu sa opisanim:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // tekst greške } else { err = null; // nema greške } callback(arr[num], err); }, 3000); }
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij