Можно ли каким-либо образом просмотреть задачи текущей очереди, чтобы определить, может ли задача, которую вы собираетесь поставить, уже соответствовать задаче, находящейся в очереди в данный момент?
Официально санкционированного способа повторения очереди не существует. Существует свойство q._tasks
, которое предоставляет базовый связанный список для очереди. Вы можете либо повторить связанный список, либо вызвать q._tasks.toArray().find(...)
, чтобы узнать, существует ли уже ваша задача.
Это деталь реализации, поэтому она не документирована. Это может сломаться в будущем, если мы изменим внутреннюю работу очереди.
Хотя в качестве усовершенствования очереди мы могли бы предоставить свойство q[Symbol.iterator]
для предоставления независимого от реализации способа повторения текущих элементов очереди.
Я также хотел бы эту функцию, многие другие очереди имеют эту функцию.
q.contains(task) был бы очень полезен!
Самый полезный комментарий
Хотя в качестве усовершенствования очереди мы могли бы предоставить свойство
q[Symbol.iterator]
для предоставления независимого от реализации способа повторения текущих элементов очереди.