Skip to content

Maior flexibilidade no querySelector #8

Description

@Leokuma
  • Permitir que o callback altere o retorno
  • Permitir alterar, de forma opcional, a frequência de checagem de fulfillment em vez de deixar fixo em 1s
  • Cancelar e reabilitar o setInterval() no callback para evitar encavalamento no caso de um callback pesado

querySelectorAll(selector, fulfillmentCallback = (elements, timeElapsed) => (elements.length || timeElapsed >= 5000), rootElement = document) {
return new Promise((resolve, reject) => {
let timeElapsed = 0;
const intervalID = setInterval(() => {
let elements = rootElement.querySelectorAll(selector);
if (fulfillmentCallback(elements, timeElapsed += 1000)) {
clearInterval(intervalID);
resolve(elements);
}
},
1000);
});
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions