Piszemy generator do funkcji autocomplete, która w założeniu ma nam po wciśnięciu np. tab wrzucać zapętlone podpowiedzi. Do dzieła.

Podejście pierwsze – działa aż do wyczerpania:

function* autocompleteTips(){
    yield "http://";
    yield "https://";
}

let helper = autocompleteTips();

console.log(helper.next().value);
console.log(helper.next().value);
console.log(helper.next().value);

//http://
//https://
//undefined

Podejście drugie – działa w kółko:

function* autocompleteTips(){
    while(true){
        yield "http://";
        yield "https://";
    }
}

let helper = autocompleteTips();

console.log(helper.next().value);
console.log(helper.next().value);
console.log(helper.next().value);
console.log(helper.next().value);

//http://
//https://
//http://
//https://

Podejście trzecie – ładniejsza składnia i przyda się później:

function* autocompleteTips(){
    let tips = [
        "http://",
        "https://"
    ];
    while(true){
        yield *tips;
    }
}

let helper = autocompleteTips();

console.log(helper.next().value);
console.log(helper.next().value);
console.log(helper.next().value);
console.log(helper.next().value);

//http://
//https://
//http://
//https://