TGViewer
Frontend Developer Frontend Developer @frontenddevelopernews · 182 subscribers
Post #55 181
Генераторы в JavaScript
Ты тоже впервые узнал про генераторы, когда использовал redux-saga в проекте? 😅
И даже не подозревал, что генераторы — это встроенная фича самого JS?
Давай разбираться, что это такое и зачем они вообще нужны!

🔁 Генератор — это синтаксический сахар для создания итераторов, которые умеют не только next(), но ещё и throw() и return().

> 🧠 Генераторы появились в ES6. Их придумали, чтобы проще работать с ленивыми итерациями, асинхронным кодом и потоками данных. Они позволяют ставить выполнение на паузу и возобновлять — как будто у функции есть кнопка «продолжить» 🎮

📌 Как объявить генератор:

function* gen() {}
// можно и так:
function * gen() {}
function *gen() {}


📌 Как использовать:

function* gen() {
yield 1
yield 2
}


📌 yield* — делегирует выполнение другому генератору:

function* outer() {
yield* inner()
}


📍 Главное отличие от обычной функции — можно приостанавливать выполнение и продолжать потом через .next()!

📌 Также есть .return() — завершает генерацию
📌 .throw() — завершает с ошибкой

---

🧩 Попробуем решить задачку:
https://bigfrontend.dev/quiz/generator-return

function* gen() {
yield 1
try {
yield 2
yield 3
} finally {
yield 4
}
yield 5
}

const g = gen()
console.log(g.next().value)
console.log(g.next().value)
console.log(g.return(6).value)
console.log(g.next().value)
console.log(g.next().value)


Прежде чем посмотреть ответ выбери то что считаешь правильным в опросе ниже

1 // первый yield
2 // второй yield
4 // return вызывает finally
6 // значение из return()
undefined // генератор завершён


А если хочешь копнуть глубже — вот отличный разбор:
https://doka.guide/js/generators/
bigfrontend.dev 121. Generator return() | BFE.dev - prepare for Front-End job interviews. What does the code snippet to the right output by console.log?…
  • 🔥 4
More from @frontenddevelopernews
  1. Jan 16, 2026🤣🤣🤣
  2. Jan 13, 2026Выпуск №509. Никита Дубко и Вадим Макеев про антивебные API для веба, как LLM и помогает,…
  3. Jan 13, 2026Всем привет! Сегодня прослушала подкаст «Веб-стандарты» #509 и узнала для себя несколько н…
  4. Dec 23, 2025🎄 Advent of JavaScript https://adventjs.dev/ Что это такое: * 24 дня — 24 задачи на JavaS…
  5. Dec 9, 2025💡 Идеальный программист Навыки, которые присущи идеальному разработчику! 😍 Спустя долгое…
  6. Dec 5, 2025Всем привет! Наткнулась в интернете на статью, где автор делится вопросами, которые ему за…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →