Функция-генератор объявляется так же, как и любая другая функция, но со звездочкой после ключевого слова «function» и генерирует значение с ключевым словом «yield», а не с «возврат».
Но что отличает генератор от обычной функции? При вызове функция-генератор может быть приостановлена и возобновлена позже. Это достигается с помощью ключевого слова «доходность».
Генератор сохраняет состояние, достаточное для возобновления функции и немедленного продолжения выполнения с того места, где остановился последний запуск «yield».
Generator-Object: «genObj» в приведенном выше коде — это объект-генератор, возвращаемый функцией-генератором. Его можно использовать, вызвав его метод next или используя его в цикле for…of.
Из приведенного выше фрагмента кода видно, что метод «next» возвращает объект, состоящий из: «значение» — возвращаемое значение и «done» — логическое значение, указывающее, завершила ли функция свое выполнение или нет.
Синтаксис yield: приостанавливает выполнение генератора и возвращает значение выражения, записанное сразу после него.
Синтаксис yield*: перебирает итерируемый объект, написанный сразу после него, и возвращает каждое его значение до тех пор, пока «done» не станет истинным.
Метод «возврата» и «выброса»:
Return : используя ключевое слово return, мы можем вернуть значение и преждевременно завершить выполнение функции-генератора. Его можно вызывать как внутри, так и снаружи функции-генератора.
Выбросить: создать исключение из генератора.
Запуск бесконечных циклов: все мы знаем, что выполнение бесконечных циклов может привести к сбою вашей программы или браузера и зависанию компьютера. Но с генераторами мы можем выполнять бесконечные циклы.
Генераторы с массивами:
Передача значения следующему методу:
примечание: передача значения при первом вызове метода next не влияет на функцию.
Спасибо, что читаете🚀.
Делитесь своими мыслями ниже👇 и удачной недели✨