Генераторы

Слайд 2

Генераторы Обычные функции возвращают только одно-единственное значение (или ничего). Генераторы могут

Генераторы

Обычные функции возвращают только одно-единственное значение (или ничего).
Генераторы могут возвращать (yield)

множество значений одно за другим, по мере необходимости. Генераторы работают с перебираемыми объектами и позволяют создавать потоки данных.
Слайд 3

Генераторы function* generateSequence() { yield 1; yield 2; return 3; }

Генераторы

function* generateSequence() {
yield 1;
yield 2;
return 3;
}

Слайд 4

Генераторы // "функция-генератор" создаёт объект "генератор" let generator = generateSequence(); alert(generator); // [object Generator]

Генераторы

// "функция-генератор" создаёт объект "генератор"
let generator = generateSequence();
alert(generator); // [object Generator]

Слайд 5

Генераторы let one = generator.next(); Результатом метода next() всегда является объект

Генераторы

let one = generator.next();
Результатом метода next() всегда является объект с двумя

свойствами:
value: значение из yield.
done: true, если выполнение функции завершено, иначе false.
Слайд 6

Перебор генераторов for(let value of generator) { alert(value); // 1, затем 2 }

Перебор генераторов

for(let value of generator) {
alert(value); // 1, затем 2
}

Слайд 7

Генераторы мы также можем сделать генератор, который будет возвращать значения бесконечно. Например, бесконечная последовательность псевдослучайных чисел.

Генераторы

мы также можем сделать генератор, который будет возвращать значения бесконечно. Например,

бесконечная последовательность псевдослучайных чисел.
Слайд 8

Генераторы function* generateSequence(start, end) { for (let i = start; i }

Генераторы

function* generateSequence(start, end) {
for (let i = start; i <=

end; i++) yield i;
}