Traitement asynchrone des commandes avec délai d'attente

TypeScript Medium async

Tâche «Traitement asynchrone des commandes avec délai d'attente»

Écrivez une fonction asynchrone processOrders qui prend un tableau d'objets de commandes (chacun avec les champs id: number et delay: number). Pour chaque commande, créez une opération asynchrone qui s'exécute après delay millisecondes (utilisez setTimeout). Si l'opération ne se termine pas en 1000 ms, elle doit être rejetée avec l'erreur 'Timeout'. La fonction doit retourner un tableau de résultats dans l'ordre des commandes originales : pour les réussites — {id, status: 'ok'}, pour les rejetées — {id, status: 'timeout'}. Utilisez Promise.allSettled et une promesse auxiliaire avec délai d'attente.

Format d\ entrée

La première ligne est le nombre n (nombre de commandes). Ensuite, n lignes, chacune contenant deux nombres : id et delay.

Format de sortie

n lignes, chacune au format : id status (ok ou timeout).

Exemples

Exemple 1

ENTRÉE
Hello World
SORTIE
3

Exemple 2

ENTRÉE
Hello world
SORTIE
2

Exemple 3

ENTRÉE
2 10 1200 20 800
SORTIE
10 timeout 20 ok

Exemple 4

ENTRÉE
JavaScript
SORTIE
3
main.ts