Chaîne asynchrone avec délais d’attente et priorités
JavaScript
Hard
promises
Tâche «Chaîne asynchrone avec délais d’attente et priorités»
Implémentez la fonction asyncChain(tasks, timeout) qui prend un tableau de tâches (des fonctions retournant des promesses) et un délai d’attente en millisecondes. La fonction doit exécuter les tâches séquentiellement, avec la possibilité de sauter une tâche si son exécution dépasse le délai d’attente défini. Si une tâche ne s’exécute pas dans le délai timeout, elle doit être rejetée et la chaîne doit continuer avec la tâche suivante. Les résultats des tâches réussies sont collectés dans un tableau et retournés. Si toutes les tâches sont sautées, retourner un tableau vide. Faites attention à la gestion des erreurs : si une promesse se termine par une erreur, cela est également considéré comme un saut de tâche.
Format d\ entrée
Première ligne : le nombre n — nombre de tâches. Ensuite, n lignes, chacune contenant deux entiers : delay et result. delay — délai avant la résolution de la promesse (ms), result — valeur retournée par la promesse. Dernière ligne : timeout — temps d’exécution maximal pour une tâche (ms).
Format de sortie
Tableau des résultats des tâches réussies (nombres), séparés par des espaces. Si le tableau est vide, afficher 'none'.
Exemples
Exemple 1
ENTRÉE
2
300 10
200 20
250
SORTIE
20
Exemple 2
ENTRÉE
1
500 100
400
SORTIE
none
Exemple 3
ENTRÉE
Integer
5
push 10
push 20
peek
pop
pop
SORTIE
none
main.js