Récupération parallèle de données avec gestion des erreurs et délais d'attente
TypeScript
Hard
async
Tâche «Récupération parallèle de données avec gestion des erreurs et délais d'attente»
Implémentez une fonction asynchrone `fetchWithTimeout` qui prend un tableau d'URL (chaînes de caractères) et un délai d'attente en millisecondes. La fonction doit envoyer parallèlement des requêtes HTTP à toutes les URL en utilisant `fetch`. Si une requête prend plus de temps que le délai d'attente spécifié, elle doit être annulée (via `AbortController`). La fonction renvoie un tableau de résultats dans le même ordre que les URL d'entrée. Pour chaque URL, le résultat est une chaîne de caractères : la réponse réussie (texte de la réponse) ou un message d'erreur de la forme "Error: <type d'erreur>", où <type d'erreur> est "Timeout" si le délai d'attente est dépassé, ou "Network" si une erreur réseau s'est produite. Il est garanti que les URL sont valides, mais le serveur peut ne pas répondre ou répondre lentement. Utilisez `Promise.allSettled` pour traiter tous les résultats.
Format d\ entrée
La première ligne contient le nombre N (nombre d'URL). Ensuite, N lignes, chacune contient une URL. La dernière ligne contient le nombre T (délai d'attente en ms).
Format de sortie
N lignes, chacune contient le résultat de la requête (texte de la réponse ou message d'erreur).
main.ts