Obtenção paralela de dados com tratamento de erros e timeouts
TypeScript
Hard
async
Tarefa «Obtenção paralela de dados com tratamento de erros e timeouts»
Implemente uma função assíncrona `fetchWithTimeout` que recebe um array de URLs (strings) e um timeout em milissegundos. A função deve enviar requisições HTTP paralelamente para todas as URLs, usando `fetch`. Se uma requisição demorar mais que o timeout especificado, ela deve ser cancelada (via `AbortController`). A função retorna um array de resultados na mesma ordem das URLs de entrada. Para cada URL, o resultado é uma string: a resposta bem-sucedida (texto da resposta) ou uma mensagem de erro no formato "Error: <tipo de erro>", onde <tipo de erro> é "Timeout" se o timeout expirou, ou "Network" se ocorreu um erro de rede. É garantido que as URLs são válidas, mas o servidor pode não responder ou responder lentamente. Use `Promise.allSettled` para processar todos os resultados.
Formato de Entrada
A primeira linha é o número N (quantidade de URLs). Em seguida, N linhas, cada uma contendo uma URL. A última linha é o número T (timeout em ms).
Formato de Saída
N linhas, cada uma contendo o resultado da requisição (texto da resposta ou mensagem de erro).
main.ts