Генератори в JavaScript

Съществуват специални функции, с помощта на които можете да създавате свои собствени итератори. Такива функции се наричат генератори. Имената на такива функции трябва да започват със звездичка:

javascriptfunction *func() {
  
}

Вътре в генераторите се използва ключовата дума yield, която указва какво трябва да върне итераторът при следващото извикване. Например, нека направим така, че първото извикване да връща 1, второто - 2, а третото - 3:

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

Генераторът като резултат връща итератор:

javascriptlet iter = func();

Нека проверим работата на нашия итератор:

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

Създайте итератор, всяко извикване на който ще връща числа от 5 до 1.