⊗jsSpACEx 158 of 294 menu

Excepciones en callbacks asíncronos en JavaScript

Supongamos que si al parámetro make se le pasa un número de un elemento de array que no existe - esta es una situación excepcional. Como ya sabes, las excepciones que ocurren dentro de una función asíncrona no pueden ser capturadas mediante try-catch. En nuestro caso, la excepción que ocurra dentro de make o del callback no será capturada:

try { make(10, function(res) { console.log(res); }); } catch(err) { // no se capturará }

En el enfoque de callbacks, se trabaja con excepciones de la siguiente manera: al primer parámetro del callback se envía el resultado, y al segundo - el error. En este caso, el manejo de errores ocurre de la siguiente manera:

make(10, function(res, err) { if (!err) { console.log(res); // no hubo error, mostramos el resultado } else { console.log(err); // hubo error, mostramos su texto } });

Reorganicemos el código de nuestra función make de acuerdo con lo descrito:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // texto del error } else { err = null; // no hay error } callback(arr[num], err); }, 3000); }
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar