Kann man sich die Aufgaben einer aktuellen Warteschlange ansehen, um festzustellen, ob die Aufgabe, die Sie einfügen möchten, möglicherweise bereits mit einer Aufgabe übereinstimmt, die sich derzeit in der Warteschlange befindet?
Es gibt keine offiziell sanktionierte Möglichkeit, die Warteschlange zu durchlaufen. Es gibt eine q._tasks
-Eigenschaft, die die zugrunde liegende verknüpfte Liste für die Warteschlange verfügbar macht. Sie können entweder die verknüpfte Liste durchlaufen oder q._tasks.toArray().find(...)
aufrufen, um zu sehen, ob Ihre Aufgabe bereits existiert.
Dies ist ein Implementierungsdetail, daher ist es nicht dokumentiert. Es könnte in Zukunft kaputt gehen, wenn wir die interne Funktionsweise der Warteschlange ändern.
Obwohl wir als Erweiterung der Warteschlange eine q[Symbol.iterator]
-Eigenschaft verfügbar machen könnten, um eine implementierungsunabhängige Methode zum Iterieren der aktuellen Elemente der Warteschlange verfügbar zu machen.
Ich würde mir diese Funktion auch wünschen, viele andere Warteschlangen haben diese Funktion.
q.contains(task) wäre sehr nützlich!
Hilfreichster Kommentar
Obwohl wir als Erweiterung der Warteschlange eine
q[Symbol.iterator]
-Eigenschaft verfügbar machen könnten, um eine implementierungsunabhängige Methode zum Iterieren der aktuellen Elemente der Warteschlange verfügbar zu machen.