Тест на вакансию

Генератор в JavaScript

18 октября 2024 г.
105
Функция-генератор – это вид функции, который позволяет приостанавливать своё выполнение. Каждый вызов функции возвращает промежуточный результат, а следующий вызов может быть произведён в произвольное время.
 

Создание функции-генератора

Для создания генератор используется следующая конструкция:
function* generate_sequence(){
    yield 1;
    yield 2;
    return 3;
}
При запуске функции она не выполняется, вместо это создаётся специальный объект "генератор".
let generator = generate_sequence();
Основной метод генератора next(), который выполняет код до ближайшего слова yield. Полный текст:
function* generate_sequence() {
  yield 'one';
  yield 'two';
  return 'three';
}
let generator = generate_sequence();
let one = generator.next();
console.log(JSON.stringify(one)); // {value: one, done: false}
let two = generator.next();
console.log(JSON.stringify(two)); // {value: two, done: false}
let three = generator.next();
console.log(JSON.stringify(three)); // {value: three, done: true}
let four = generator.next();
console.log(JSON.stringify(four)); // {done: true}
Поделиться: