Функция-генератор объявляется так же, как и любая другая функция, но со звездочкой после ключевого слова «function» и генерирует значение с ключевым словом «yield», а не с «возврат».

Но что отличает генератор от обычной функции? При вызове функция-генератор может быть приостановлена ​​и возобновлена ​​позже. Это достигается с помощью ключевого слова «доходность».

Генератор сохраняет состояние, достаточное для возобновления функции и немедленного продолжения выполнения с того места, где остановился последний запуск «yield».

Generator-Object: «genObj» в приведенном выше коде — это объект-генератор, возвращаемый функцией-генератором. Его можно использовать, вызвав его метод next или используя его в цикле for…of.

Из приведенного выше фрагмента кода видно, что метод «next» возвращает объект, состоящий из: «значение» — возвращаемое значение и «done» — логическое значение, указывающее, завершила ли функция свое выполнение или нет.

Синтаксис yield: приостанавливает выполнение генератора и возвращает значение выражения, записанное сразу после него.

Синтаксис yield*: перебирает итерируемый объект, написанный сразу после него, и возвращает каждое его значение до тех пор, пока «done» не станет истинным.

Метод «возврата» и «выброса»:

Return : используя ключевое слово return, мы можем вернуть значение и преждевременно завершить выполнение функции-генератора. Его можно вызывать как внутри, так и снаружи функции-генератора.

Выбросить: создать исключение из генератора.

Запуск бесконечных циклов: все мы знаем, что выполнение бесконечных циклов может привести к сбою вашей программы или браузера и зависанию компьютера. Но с генераторами мы можем выполнять бесконечные циклы.

Генераторы с массивами:

Передача значения следующему методу:

примечание: передача значения при первом вызове метода next не влияет на функцию.

Спасибо, что читаете🚀.

Делитесь своими мыслями ниже👇 и удачной недели✨