Piszemy generator do wyszukiwania elementów w DOM w bardzo prosty sposób. Do dzieła.

Najpierw nasza funkcja findElements, zobaczmy czy ją rozumiemy:

function findElements(selector) {
    return Array.from( document.querySelectorAll(selector) );
}

Teraz jej odpowiednik w postaci generatora:

function* queryAll(selector){
    let elems = Array.from(document.querySelectorAll(selector));
    yield *elems;
}

Użycie bardzo proste:

window.addEventListener('DOMContentLoaded', function(){

    for(let para of queryAll("p")){
        console.log(para.textContent);
    }

    //bla bla bla
    //bla bla
    //bla bla bla234

});

Żeby nie było za krótko, napiszmy sobie jeszcze funkcję isGenerator:

function isGenerator(fn) {
    return fn.constructor.name === 'GeneratorFunction';
}

console.log(isGenerator(queryAll));
//true
console.log(isGenerator(findElements));
//false

Możemy sprawdzać, czy funkcja jest generatorem, czy nie.