Yield приостанавливает генератор и отдаёт значение вызывающему коду. Следующий next возобновляет выполнение с места приостановки.
Что делает ключевое слово yield и как оно связано с генераторами?
Yield приостанавливает генератор и отдаёт значение вызывающему коду. Следующий next возобновляет выполнение с места приостановки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Yield приостанавливает генератор и отдаёт значение вызывающему коду. Следующий next возобновляет выполнение с места приостановки.
В function* values() { yield 1; yield 2; } вызовы next возвращают объекты value/done. Аргумент очередного next становится результатом предыдущего yield внутри генератора. Yield* делегирует перебор другому iterable; обычная функция не может использовать yield как генератор.