Obtención paralela de datos con manejo de errores y tiempos de espera

TypeScript Hard async

Tarea «Obtención paralela de datos con manejo de errores y tiempos de espera»

Implemente una función asíncrona `fetchWithTimeout` que recibe un array de URLs (cadenas) y un tiempo de espera en milisegundos. La función debe enviar solicitudes HTTP a todas las URLs en paralelo, usando `fetch`. Si una solicitud tarda más del tiempo de espera especificado, debe ser cancelada (a través de `AbortController`). La función devuelve un array de resultados en el mismo orden que las URLs de entrada. Para cada URL, el resultado es una cadena: una respuesta exitosa (texto de la respuesta) o un mensaje de error de la forma "Error: <tipo de error>", donde <tipo de error> es "Timeout" si se agotó el tiempo de espera, o "Network" si ocurrió un error de red. Se garantiza que las URLs son válidas, pero el servidor puede no responder o hacerlo lentamente. Use `Promise.allSettled` para manejar todos los resultados.

Formato de entrada

La primera línea es el número N (cantidad de URLs). Luego N líneas, cada una contiene una URL. La última línea es el número T (tiempo de espera en ms).

Formato de salida

N líneas, cada una contiene el resultado de la solicitud (texto de la respuesta o mensaje de error).

main.ts