Asynchrone Auftragsverarbeitung mit Timeout

TypeScript Medium async

Aufgabe «Asynchrone Auftragsverarbeitung mit Timeout»

Schreiben Sie eine asynchrone Funktion processOrders, die ein Array von Auftragsobjekten (jeweils mit den Feldern id: number und delay: number) entgegennimmt. Erstellen Sie für jeden Auftrag eine asynchrone Operation, die nach delay Millisekunden ausgeführt wird (verwenden Sie setTimeout). Wenn die Operation nicht innerhalb von 1000 ms abgeschlossen ist, soll sie mit dem Fehler 'Timeout' abgelehnt werden. Die Funktion soll ein Array von Ergebnissen in der Reihenfolge der ursprünglichen Aufträge zurückgeben: für erfolgreiche — {id, status: 'ok'}, für abgelehnte — {id, status: 'timeout'}. Verwenden Sie Promise.allSettled und einen Hilfs-Promise mit Timeout.

Eingabeformat

Die erste Zeile ist die Zahl n (Anzahl der Aufträge). Dann folgen n Zeilen, jede enthält zwei Zahlen: id und delay.

Ausgabeformat

n Zeilen, jede im Format: id status (ok oder timeout).

Beispiele

Beispiel 1

EINGABE
Hello World
AUSGABE
3

Beispiel 2

EINGABE
Hello world
AUSGABE
2

Beispiel 3

EINGABE
2 10 1200 20 800
AUSGABE
10 timeout 20 ok

Beispiel 4

EINGABE
JavaScript
AUSGABE
3
main.ts