Domina el error handling en Node.js con seguridad: aprende a manejar fallos en flujos síncronos y asíncronos, y resuelve el task 5.X escuchando el evento de error para salir con el código correcto. Aquí verás la lógica clave, el uso de event emitters y la práctica recomendada sin tocar archivos externos.
¿Qué evalúa el dominio de error handling en Node.js?
Este dominio pesa 8 % en la prueba de JS Nat y se enfoca en cómo controlas errores en diferentes abstracciones. Debes distinguir entre flujos síncronos y asíncronos y elegir la técnica adecuada en cada caso.
- Manejo con callbacks: captura errores en el primer argumento de la función.
- Manejo con promises: usa .catch para errores en cadena.
- Manejo con async/await: envuelve en try/catch para excepciones asíncronas.
- Manejo con event emitters: escucha el evento 'error' para respuestas controladas.
- Referencia clave: documentación de Mozilla Developer Network sobre control de flujo y errores.
La clave: saber identificar el tipo de abstracción y aplicar la técnica correcta sin mezclar responsabilidades.
¿Cómo resolver el task 5.X con un event emitter?
El reto incluye un archivo adicional que el ejercicio usa internamente. no debes modificarlo. En este caso, el módulo requerido como emitter emite un error usando setTimeout tras aproximadamente 500 ms. Tu trabajo es escuchar el evento 'error' y terminar el proceso con exit code 1. Si no hay errores, el proceso finaliza normalmente.
¿Qué hace el archivo externo no modificable?
- Exporta un event emitter ya configurado.
- Lanza un error de forma programada con setTimeout.
- Sirve para probar tu manejo de errores sin tocar su código.
¿Qué debe hacer answer.js para manejar el error?
- Importar el emitter provisto por el ejercicio.
- Escuchar el evento 'error' y ejecutar una salida controlada.
- no imprimir el error: basta con finalizar con código de salida 1.
Ejemplo de implementación mínima:
const emitter = require('./emitter');
emitter.on('error', (err) => {
process.exit(1);
});
Esto cumple el estándar de event emitter: si hay error, se emite 'error' y tu listener decide la acción. aquí, la acción es terminar el proceso con un código que indica fallo.
¿Cómo verificar el comportamiento y qué aprender?
Puedes ejecutar el script con Node en la carpeta del task 5.X. verás que el comando termina con exit code 1, señal de que capturaste el error y respondiste como se pidió. Si no se emite error, el proceso termina sin intervención.
Habilidades y conceptos reforzados:
- event emitter: patrón de suscripción a eventos con un canal dedicado para errores.
- error handling asíncrono: reconocimiento de errores fuera del call stack inmediato.
- exit code: uso de process.exit(1) para comunicar fallo al sistema.
- separación de responsabilidades: no modificar archivos auxiliares, solo reaccionar a sus señales.
- callbacks, promises, async/await: entender que cada abstracción tiene su técnica de manejo.
- documentación MDN: guía base para control de flujo y errores en JavaScript.
¿Tienes dudas sobre implementar el listener de 'error' o cuándo usar try/catch frente a .catch? deja tu comentario y cuéntame qué parte del manejo de errores te gustaría practicar más.