Similar presentations:
Генераторы
1.
Генераторы2.
ГенераторыОбычные функции возвращают только одно-единственное значение (или
ничего).
Генераторы могут возвращать (yield) множество значений одно за
другим, по мере необходимости. Генераторы работают с перебираемыми
объектами и позволяют создавать потоки данных.
3.
Генераторыfunction* generateSequence() {
yield 1;
yield 2;
return 3;
}
4.
Генераторы// "функция-генератор" создаёт объект "генератор"
let generator = generateSequence();
alert(generator); // [object Generator]
5.
Генераторыlet one = generator.next();
Результатом метода next() всегда является объект с двумя свойствами:
● value: значение из yield.
● done: true, если выполнение функции завершено, иначе false.
6.
Перебор генераторовfor(let value of generator) {
alert(value); // 1, затем 2
}
7.
Генераторымы также можем сделать генератор, который будет возвращать
значения бесконечно. Например, бесконечная последовательность
псевдослучайных чисел.
8.
Генераторыfunction* generateSequence(start, end) {
for (let i = start; i <= end; i++) yield i;
}
9.
ЗадачаСоздать генератор, который возвращает на каждый вызов четное число
из промежутка, переданного в аргументы генератора: generator(from, to)