Paralleles Abrufen von Daten mit Fehlerbehandlung und Timeouts
TypeScript
Hard
async
Aufgabe «Paralleles Abrufen von Daten mit Fehlerbehandlung und Timeouts»
Implementieren Sie eine asynchrone Funktion `fetchWithTimeout`, die ein Array von URLs (Strings) und einen Timeout in Millisekunden akzeptiert. Die Funktion soll parallel HTTP-Anfragen an alle URLs senden, indem sie `fetch` verwendet. Wenn eine Anfrage länger als der angegebene Timeout dauert, soll sie (über `AbortController`) abgebrochen werden. Die Funktion gibt ein Array von Ergebnissen in derselben Reihenfolge wie die eingegebenen URLs zurück. Für jede URL ist das Ergebnis ein String: eine erfolgreiche Antwort (Antworttext) oder eine Fehlermeldung der Form "Error: <Fehlertyp>", wobei <Fehlertyp> "Timeout" ist, wenn der Timeout abgelaufen ist, oder "Network", wenn ein Netzwerkfehler aufgetreten ist. Es wird garantiert, dass die URLs gültig sind, aber der Server kann nicht antworten oder langsam antworten. Verwenden Sie `Promise.allSettled` zur Verarbeitung aller Ergebnisse.
Eingabeformat
Die erste Zeile ist eine Zahl N (Anzahl der URLs). Dann folgen N Zeilen, jede enthält eine URL. Die letzte Zeile ist eine Zahl T (Timeout in ms).
Ausgabeformat
N Zeilen, jede enthält das Ergebnis der Anfrage (Antworttext oder Fehlermeldung).
main.ts