Existe alguma maneira de examinar as tarefas de uma fila atual para determinar se a tarefa que você está prestes a colocar já corresponde a uma tarefa atualmente na fila?
Não há uma maneira oficialmente sancionada de iterar a fila. Há uma propriedade q._tasks
que expõe a lista vinculada subjacente para a fila. Você pode iterar a lista vinculada ou chamar q._tasks.toArray().find(...)
para ver se sua tarefa já existe.
Este é um detalhe de implementação, portanto, não está documentado. Pode quebrar no futuro se mudarmos a forma como a fila funciona internamente.
Embora, como um aprimoramento da fila, pudéssemos expor uma propriedade q[Symbol.iterator]
para expor uma maneira agnóstica de implementação de iterar os itens atuais da fila.
Eu também gostaria desse recurso, muitas outras filas têm esse recurso.
q.contains(task) seria muito útil!
Comentários muito úteis
Embora, como um aprimoramento da fila, pudéssemos expor uma propriedade
q[Symbol.iterator]
para expor uma maneira agnóstica de implementação de iterar os itens atuais da fila.