198 подписчиков
Генераторы в JavaScript — это специальный тип функции, который позволяет создавать итераторы. Они определяются с помощью ключевого слова function* и могут использовать оператор yield для приостановки выполнения функции и возврата значения. Когда генератор вызывается, он не выполняет код сразу, а возвращает объект-итератор, который можно использовать для последовательного получения значений.
Основные характеристики генераторов:
Определение: Генераторы определяются с помощью function*:
function* myGenerator()
{
yield 1;
yield 2;
yield 3;
}
Итератор: При вызове генератора возвращается итератор:
const gen = myGenerator();
Получение значений: Значения из генератора можно получать с помощью метода next():
console.log(gen.next()); // {alue: 1, done: false }
console.log(gen.next()); // value: 2, done: false }
console.log(gen.next()); //{ value: 3, done: false }
console.log(gen.next()); // { value: undefined, done: true }
Приостановка и возобновление: Генераторы могут приостанавливать выполнение и возобновлять его, что позволяет управлять состоянием:
function* counter()
{ let count = 0; while (true) { yield count++;
} }
Передача значений: В генераторы можно передавать значения с помощью метода next(value):
function* echo()
{ while (true)
{ const input = yield; console.log(input); } }
Генераторы полезны для работы с асинхронным кодом, создания последовательностей и управления состоянием в сложных алгоритмах.
1 минута
13 июля