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