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

Совместимость с браузерами

Смотрите также

Legacy generators

ES2015 generators

Help improve MDN

Learn how to contribute

This page was last modified on by MDN contributors.