Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since сентябрь 2016 г..
**Выражение yield* **используется для того, чтобы "передать управление" функцией-генератором другому генератору или итерируемому объекту.
Итерируемый объект
Выражение yield* в функции-генераторе принимает итерируемый объект и возвращает его значения по очереди, как если бы эта функция-генератор возвращала их сама.
Значение выражения yield* само по себе равно последнему значению итерируемого объекта (т.е., того когда done равно true).
В следующем примере, значения полученные из g1() возвращаются из g2 вызовами next, как будто бы она вычислила их сама.
Помимо объектов генераторов, yield* может перебирать другие виды итерируемых объектов, т.е. массивы, строки, объекты аргументов и др.
yield* - это выражение, а не оператор, поэтому оно имеет значение, равное последнему значению итератора
| ECMAScript® 2027 Language Specification # sec-generator-function-definitions-runtime-semantics-evaluation |
Enable JavaScript to view this browser compatibility table.
Реализована корректная обработка разрыва строки. Разрыва строки между "yield" и "*" быть не может. Такой код вызовет SyntaxError:
This page was last modified on 24 июн. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.