Параллельное получение данных с обработкой ошибок и таймаутами

TypeScript Сложный async

Задача «Параллельное получение данных с обработкой ошибок и таймаутами»

Реализуйте асинхронную функцию `fetchWithTimeout`, которая принимает массив URL (строки) и таймаут в миллисекундах. Функция должна параллельно отправлять HTTP-запросы ко всем URL, используя `fetch`. Если запрос выполняется дольше указанного таймаута, он должен быть отменен (через `AbortController`). Функция возвращает массив результатов в том же порядке, что и входные URL. Для каждого URL результатом является строка: успешный ответ (текст ответа) или сообщение об ошибке вида "Error: <тип ошибки>", где <тип ошибки> — "Timeout", если истек таймаут, или "Network", если произошла сетевая ошибка. Гарантируется, что URL валидны, но сервер может не отвечать или отвечать долго. Используйте `Promise.allSettled` для обработки всех результатов.

Формат ввода

Первая строка — число N (количество URL). Далее N строк, каждая содержит URL. Последняя строка — число T (таймаут в мс).

Формат вывода

N строк, каждая содержит результат запроса (текст ответа или сообщение об ошибке).

main.ts