JavaScript

Test de JavaScript: asincronía y errores

Resuelve 50 casos sobre promesas, async/await, Fetch, temporizadores, cola de tareas y gestión de errores en JavaScript.

Cada intento mezcla preguntas y respuestas para evitar patrones memorizables.

Cargando preguntas…

Qué vas a practicar

Este banco trabaja asincronía y errores mediante flujos de ejecución: estados de promesas, encadenamiento, async/await, combinadores, Fetch, temporizadores, microtareas, excepciones y limpieza. Las preguntas exigen anticipar el resultado y elegir una estrategia de control adecuada.

  • Conceptos clave: Estados de Promise y métodos de combinación.
  • Diferencias importantes: Funciones async, await, secuencialidad y concurrencia.
  • Detalles que conviene dominar: fetch, Response, JSON y AbortController.
  • Aplicación en el test: try...catch, tipos de error, microtareas y temporizadores.

Preguntas de ejemplo

Estos ejemplos reflejan el tipo de precisión que exige el test: leer el enunciado completo, elegir una opción y comprobar por qué encaja con JavaScript: asincronía y errores.

1En JavaScript asíncrono, identifica qué representa una instancia de Promise.

Respuesta: La finalización o el fallo futuro de una operación

Explicación: Una promesa representa un resultado que puede estar disponible más adelante o una razón de fallo. Una promesa solo puede asentarse una vez; sus manejadores reciben el valor o la razón mediante una cadena posterior de microtareas.

2Evalúa el resultado de ejecutar Promise.resolve(5).

Respuesta: Crea una promesa cumplida con 5

Explicación: Promise.resolve devuelve una promesa cumplida con el valor indicado, salvo que adopte el estado de un thenable. El método construye o combina promesas sin convertir la operación subyacente en síncrona.

3En una cadena de promesas, determina qué argumento recibe normalmente el callback registrado con finally.

Respuesta: Ninguno

Explicación: finally no recibe el valor ni la razón; se usa para tareas de limpieza comunes a ambos resultados. Devolver el valor o la promesa mantiene la cadena; omitir return puede desacoplar una operación y ocultar su finalización al llamador.

4Tras recibir un Response, determina qué devuelve una llamada a response.json().

Respuesta: Una Promise que se cumple con el cuerpo analizado

Explicación: La lectura y conversión del cuerpo es asíncrona, por lo que json devuelve una promesa. Fetch rechaza principalmente por fallos de red o cancelación; los estados HTTP deben comprobarse en el objeto Response.

5¿Cuándo se ejecuta un bloque finally de try...catch...finally?

Respuesta: Tanto si hay error como si no, salvo interrupciones externas del entorno

Explicación: finally se usa para limpieza porque se ejecuta tras try y catch en ambos caminos normales. El bloque o manejador solo intercepta errores que se propagan por su propio flujo de ejecución; las tareas posteriores necesitan gestión propia.

6Una función devuelve la cadena return fetch(...).then(...). Identifica la ventaja de devolver explícitamente esa promesa.

Respuesta: Permite que quien llama espere y gestione la cadena

Explicación: Devolver la promesa expone la finalización y los errores a la función llamadora para que pueda componerlos. Devolver el valor o la promesa mantiene la cadena; omitir return puede desacoplar una operación y ocultar su finalización al llamador.

Cómo usarlo

Sigue el orden de ejecución y separa código síncrono, microtareas y tareas. Comprueba cómo se propagan los valores y rechazos, qué errores captura cada bloque y qué recurso debe cancelarse o limpiarse; después compara tu razonamiento con la explicación.

Fuente y revisión

Las preguntas se han contrastado con ECMAScript 2026, el Fetch Living Standard, el modelo de bucle de eventos del HTML Living Standard y documentación técnica de referencia sobre promesas y errores. Revisión técnica: 5 de agosto de 2026.

Documentación consultada: ECMAScript 2026 · WHATWG: Fetch Living Standard · HTML Living Standard: event loops · MDN: Using promises