Generatorer i JavaScript

Det finns speciella funktioner, med vilka man kan skapa sina egna iteratorer. Sådana funktioner kallas generatorer. Namnen på sådana funktioner måste börja med en asterisk:

javascriptfunction *func() {
  
}

Inuti generatorer används nyckelordet yield, som indikerar vad iteratorn ska returnera vid nästa anrop. Låt oss som exempel göra så att det första anropet returnerar 1, det andra - 2, och det tredje - 3:

javascriptfunction *func() {
  yield 1;
  yield 2;
  yield 3;
}

Generatorn returnerar som sitt resultat en iterator:

javascriptlet iter = func();

Låt oss kontrollera vår iterators funktion:

javascriptconsole.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
Задание 1

Skapa en iterator, vars varje anrop kommer att returnera tal från 5 till 1.