⊗jsSpACEx 158 of 294 menu

Excepții în callback-urile asincrone în JavaScript

Să presupunem că, dacă parametrul make este transmis un număr al unui element inexistent în array - aceasta este o situație excepțională. După cum știți deja, excepțiile, apărute în interiorul unei funcții asincrone, nu pot fi prinse prin try-catch. În cazul nostru, excepția, apărută în interiorul make sau a callback-ului, nu va fi prinsă:

try { make(10, function(res) { console.log(res); }); } catch(err) { // nu va fi prinsă }

În abordarea cu callback-uri, cu excepțiile se lucrează în felul următor: în primul parametru al callback-ului se trimite rezultatul, iar în al doilea - eroarea. În acest caz, gestionarea erorilor are loc în felul următor:

make(10, function(res, err) { if (!err) { console.log(res); // nu a apărut nicio eroare, afișăm rezultatul } else { console.log(err); // a apărut o eroare, afișăm textul ei } });

Să modificăm codul funcției noastre make în conformitate cu cele descrise:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // textul erorii } else { err = null; // nu există eroare } callback(arr[num], err); }, 3000); }
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge