Generator - JavaScript | MDN
Конструктор
Этот объект не может быть инстанциирован напрямую. Вместо этого, экземпляр Generator может быть возвращён из функции-генератора:
js
function* generator() {
yield 1;
yield 2;
yield 3;
}
const gen = generator(); // "Generator { }"
console.log(gen.next().value); // 1
console.log(generator().next().value); // 1
console.log(generator().next().value); // 1
Методы экземпляра
Generator.prototype.next()-
Возвращает значение, полученное выражением
yield. Generator.prototype.return()-
Возвращает заданное значение и заканчивает генератор.
Generator.prototype.throw()-
Выдаёт ошибку генератора.
Пример
Бесконечный Итератор
js
function* idMaker() {
var index = 0;
while (true) yield index++;
}
var gen = idMaker(); // "Generator { }"
console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
// ...
Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification # sec-generator-objects |