Asynchrone Kette mit Timeouts und Prioritäten
JavaScript
Hard
promises
Aufgabe «Asynchrone Kette mit Timeouts und Prioritäten»
Implementieren Sie die Funktion asyncChain(tasks, timeout), die ein Array von Aufgaben (Funktionen, die Promises zurückgeben) und einen Timeout in Millisekunden akzeptiert. Die Funktion soll die Aufgaben nacheinander ausführen, jedoch mit der Möglichkeit, eine Aufgabe zu überspringen, wenn ihre Ausführung den angegebenen Timeout überschreitet. Wenn eine Aufgabe nicht innerhalb des Timeouts abgeschlossen wird, soll sie abgelehnt werden und die Kette mit der nächsten Aufgabe fortgesetzt werden. Die Ergebnisse erfolgreich ausgeführter Aufgaben werden in einem Array gesammelt und zurückgegeben. Wenn alle Aufgaben übersprungen wurden, geben Sie ein leeres Array zurück. Beachten Sie die Fehlerbehandlung: Wenn ein Promise mit einem Fehler endet, gilt dies ebenfalls als Überspringen der Aufgabe.
Eingabeformat
Erste Zeile: Zahl n – Anzahl der Aufgaben. Dann n Zeilen, jede enthält zwei ganze Zahlen: delay und result. delay – Verzögerung vor der Auflösung des Promises (ms), result – Wert, den das Promise zurückgibt. Letzte Zeile: timeout – maximale Ausführungszeit einer Aufgabe (ms).
Ausgabeformat
Array der Ergebnisse erfolgreich ausgeführter Aufgaben (Zahlen), getrennt durch Leerzeichen. Wenn das Array leer ist, geben Sie 'none' aus.
Beispiele
Beispiel 1
EINGABE
2
300 10
200 20
250
AUSGABE
20
Beispiel 2
EINGABE
1
500 100
400
AUSGABE
none
Beispiel 3
EINGABE
Integer
5
push 10
push 20
peek
pop
pop
AUSGABE
none
main.js