Генераторы в JS
Обычные функции возвращают только одно-единственное значение (или ничего).
Генераторы могут порождать (yield) множество значений одно за другим, по мере необходимости. Генераторы отлично работают с перебираемыми объектами и позволяют легко создавать потоки данных.
Для объявления генератора используется специальная синтаксическая конструкция: function*, которая называется «функция-генератор».
Выглядит она так:
function* generateSequence() {
yield 1;
yield 2;
return 3;
}
Основным методом генератора является next(). При вызове он запускает выполнение кода до ближайшей инструкции yield <значение> ). По достижении yield выполнение функции приостанавливается, а соответствующее значение – возвращается во внешний код.
Результатом метода next() всегда является объект с двумя свойствами:
- value: значение из yield.
- done: true, если выполнение функции завершено, иначе false.
👉 @seniorFront