Press "Enter" to skip to content

Generators in JavaScript


хороший понедельник ммм лампа утром в прошлом
недельное видео, которое мы можем найти там или
в описании эпизода мы рассмотрели
итераторы в этом видео мы собираемся
посмотрите на генераторы, которые являются супер
странная и чужая и волшебная концепция
пока вы не поймете, что это просто одно и то же
синтаксический сахар, чтобы легко создать
Итераторы Я твой хозяин mpj, и вы
наблюдение за функцией
[Музыка]
[Музыка]
Сегодняшний эпизод спонсируется опрокинутыми
и они в настоящее время нанимают, если вы
знаете кого — то , кто хотел бы работать с
реагировать на родные и узловые
Стокгольм отправляет их в тихий / f
FF эта ссылка также находится в эпизоде
описание давайте посмотрим на
пользовательский пример итератора армии дракона из
видео на прошлой неделе, если вы думаете
о пропуске видео на прошлой неделе
итераторы и пытаются понять
генераторы без понимания
итераторы, которые вам не нужны
понимать итераторы, чтобы
понять, что генераторы смотрят, что видео
что, может быть, вы сделали на прошлой неделе, так что пусть
я дам вам краткое описание того, как это
код работает, поэтому мы затягиваем
дракон, который является функцией, которая
делает случайную строку дракона, так что просто
производит что-то вроде этого среднего времени
дракон или средний глаз дракон или большое время
дракон или средний дракон или крошечный
пожарный дракон, который ты получишь, у нас есть это
объект армии дракона, который мы можем повторить
с циклом for, например, так что мы
перетащить его прямо над армией дракона и
это дает нам дракона для каждой итерации
и вы видите здесь, что на первом
итерация это крошечный огонь дракона возгласы
на первой итерации крошечный огонь
дракон на второй итерационной среде
огонь дракон средний время дракон крошечные глаза
дракон каждый, да, вы его получите, и это дает
нас случайное количество драконов на каждом
как вы видите здесь, когда я запускаю его несколько
раз вижу, что ты похож на моего бога
меняется каждый раз, как это работает
что армия драконов имеет особое свойство
это интерфейс для итерации
объект, который установлен на фабрику
функции, которая, в свою очередь, вернет
объект с следующим свойством:
является функцией, которая дает нам следующую
итерации того, что мы оцениваем
армии итерационный объект
что-то вроде этого, это объект
который имеет
значение, которое теперь является итерированным драконом
а затем он также возвращает
свойство, которое говорит, что если итерация
или нет, есть еще
итерации, если мы закончим , это то, что
свойство рассвета означает, что каждый раз, когда мы
вызовите следующий, что является циклом for
внутренне мы проверяем, достаточно ли
Появились драконы, которые
просто случайная вещь, и если они не
мы возвращаем итерацию, где мы делаем
Дракон и установить , что значения , если мы
Если бы не Драконы были порождены, мы просто
вернуть объект итерации, который имеет
сделал набор для двух и рассказывает для
петля здесь, чтобы быть таким, что мы закончили
путь, если вы думаете, что это в очереди
что я собираюсь здесь
круто то название этого плагина является
называется quokka, вы можете найти его на
Функция Crockett Fonfon
это спонсор шоу, что я
я собираюсь сделать это, я собираюсь заменить это
фабрика итераторов здесь, как это, с
генератор он собирается сделать точно
то же самое, я просто собираюсь использовать
генератор для создания итераторной фабрики
вместо этого для сравнения я собираюсь просто
прокомментируйте это, я собираюсь украсть это
чтобы написать функциональную звезду, тогда я собираюсь
сделать что-то, что очень типично для
генераторы, которые я собираюсь написать, пока он
правда , то я собираюсь взять это это
становится очень медленным, потому что он застревает
в бесконечном цикле висела, я собираюсь
прокомментируйте это немного и да
достаточно во время икры, если достаточно дракона
мы вернемся, потому что
мы закончили, там больше нет
драконов, но если мы не закончим, если
драконы не были порождены, мы собираемся
о, о, боже, новое ключевое слово вы знаете, что
что это значит, что это такое
мы собираемся сделать это, я собираюсь
получить дракона сделать след Панк и теперь
мы сделали так
и мы просто переместим здесь ООП, чтобы вы видели
как вау теперь это работает , это то же самое
вещь как это эта эта маленькая вещь
заменил это намного короче, позвольте мне
на самом деле близко , что и это будет
показать вам , что это просто
то же самое , так что если , если мы называем дракона
армии этот символ получил это хорошо наш вызов
что то, что дает нам итератор
точно так же, как эта штука действительно позволила
я просто украду это и просто удалю
это так, что мы не отвлекаемся и
Я собираюсь просто назвать эту вещь некоторые
драконы не жалеют
таким образом, начальный вид бросает вас
почему- то почему-то
некоторые драконы, которые дают нам итератор
хорошо тонкая постоянная скорость или подпишем
что ваша переменная и помните из
последний эпизод, что мы делаем с итераторами
если мы работаем над их потреблением, как для
это делает это для нас, но если
мы хотим сделать это как по своему усмотрению, мы можем
сделать iterator dot next up и что делать
которые дают нам глаза, которые дают нам сегодня
итерационный объект, который имеет значение и
что-то, что говорит нам, если мы закончили или
не так, давайте просто позвоним, что пару
раз и посмотреть, что это дает нам все в порядке, поэтому
мы видим здесь, что мы получаем трех драконов
средний молниеносный дракон — крошечная молния
дракон большой огонь дракона, и мы не
сделано, мы не закончили здесь, мы не на
здесь, но потом мы закончили, мы не в
драконы и это не имеет значения , сколько
раз мы вызывали итератор после этого
мы по-прежнему все еще не получаем
более того, имея в виду, давайте вернемся назад
к генератору D и посмотреть, что
мы как это делаем
здесь замкнутый цикл продолжается
до бесконечности, пока он не прекратится здесь
это интеллект, так что происходит
что мы зацикливаемся здесь хорошо, пока правда
true всегда верно, поэтому он просто сохраняет
циклические проверки, если достаточное количество Драконов
был порожден, и если достаточно Драконов
был откручен, так что это будет просто
полностью прекратить дело и что
вот что происходит здесь, но если мы
не хватает драконов, мы продолжаем и
то мы нажимаем ключевое слово yield и
даст дракон , и что собирается
вид паузы функции и просто нажмите
ваш дракон, а затем до
внешний мир называет следующий итератор
он ничего не сделает, но когда он
делает, только что продолжается
работает здесь, а затем возвращается к
while и yes, и проверьте,
достаточно драконов, рожденных и да
делает это и пока это не делает
это больше и fendron
и вернусь, я заберу тебя, это
на самом деле все еще очень запутываю вас
репетировал это много, и вы делаете
это легко, но это действительно не
Я смутился
давайте попробуем удалить проводку и
да, у нас много условностей и
странные вещи, вроде петли I
думаю, сделать это еще проще или проще
как да давайте просто разобраться с вещами
вручную дают пушистые драконы какого-то дракона
мы тут же отмечаем
прекрасный дракон вы видите здесь, когда я уступаю
эти значения мы и, как мы называем далее
мы получаем их здесь так же, как и
итерационные объекты, а затем мы закончили
и вы также можете комнате также попробовать
помните, что в этом контексте это
JavaScript всегда есть
неявный возврат не определен в
в конце функции, поэтому, если вы не
вернуть вручную в функции JavaScript
он будет возвращать неопределенным , так как
функция всегда будет возвращаться так,
продолжайте приносить некоторые значения здесь, или мы
может делать все, что мы хотим,
Харди собака, он не дракон
мы не возражаем прием каждого это
слабо набраны, которых нет
классов, и если мы вернемся, даже если мы
раннее возвращение означает, что
генератор прекращается, и любой подобный нам
никогда не достигнет какой-либо другой урожайности
поэтому давайте посмотрим, как если бы не
случайное значение выше первого 0,5, тогда мы получаем
вряд ли собака не жалеет, тогда мы знаем
то мы возвращаемся так теперь, мы иногда не делаем
едва ли собака, и это потому, что
мы сделали это раннее возвращение здесь и заметили
что хотя у нас больше кода здесь
вызов итератора несколько раз
он не собирается дать нам что — нибудь о
генератор итератор
его прекратить, это делается, и это
вернулся, но это сделано, но пока это не сделано
это когда уступать, как это, мы добрые
функции является генератором
функция генератора — это как-то приостановлено
и вот что это то, что я
найти вид полезного умственного умственного
модель, когда дело доходит до генераторов
из них как возможные функции и
иллюстрируют, что я собираюсь удалить или
итератора следующие утверждения теперь благодаря
quokka у нас есть этот удобный код
индикаторы покрытия здесь слева, поэтому
красный означает красный серый означает, что этот код
не выполнено, что довольно
интересно, учитывая, что мы вызываем
некоторые драконы здесь, поэтому позвольте мне видеть, как
мм гм
что тот факт, что мы поймали некоторые
Драконы не означает , что это
выполняется, и это потому, что все вызовы
функция генератора фактически не
заставить его работать, но это дает нам
итератор, который позволяет нам перейти к
следующий шаг в генераторе — это
как пульт для телевизора, как телевизор
позволяет включить телевизор и включить
каналы итератора — ваш пульт
управления , чтобы запустить генератор прямо так
позвоним дальше на итераторе и посмотрим
что происходит
хм, это прямой или точечный следующий, что делает
что дает нам , что это дает нам
итерация со значениями пушистых
Драконов, и мы еще не закончили, и мы
см. здесь, что эта первая строка сейчас
но не все остальное не остальное
он заставил сюда и вернул это
Значение puffkins дракона — это
возвращаемое значение — итератор, но затем так, чтобы
мы получаем тыквы — драконы, но после этого
ничего не происходит, или просто
ничего не делает генератор
ожидая, что мы будем использовать наш пульт дистанционного управления
наш итератор, чтобы подавить следующий и до
то генератор продолжается, поэтому давайте
давайте сделаем это на самом деле итератор
посмотрим, что это дает нам, чтобы
дает нам наш знак прекрасного дракона и
мы все еще не сделали, чтобы вы видели здесь
что эта ценность здесь оказалась здесь
как объект итерации, и снова вы видите
здесь, ммм, мы никогда не достигаем этих двух
линии, давайте продолжим звонить и видеть
что происходит
О, покрытие кода является коричневым, что
сбивает с толку , потому что мы похожи
на одной линии происходит много вещей
это намного проще, если мы отделим его
на двух линиях, чтобы мы могли
правильно посмотреть
ресторан, поэтому мы видим здесь, что на этом
мы не вернулись, а это означало
что мы продолжаем здесь и
вряд ли собака, и это дало нам
итерации, где значение было едва ли
собака это интересно, хотя мы
мы не закончили, хотя мы четко
в конце вещи и помните
что ключевое слово yield приостанавливает
функции и ждет следующего следующего
вызов итератора до его продолжения
так что это на самом деле остановился как раз перед
это происходит неявным и
место, которое оно возвращает, не определено
случается, что вы знаете, происходит в каждом
функции в JavaScript
поэтому, когда мы называем iterator dot next this
собирается быть быть то , что происходит подобно
мы получим правду, потому что мы используем
return, и мы собираемся получить значение
в файле, потому что это то, что мы
мы можем на самом деле сделать это немного
бит лучше, если мы хотим, чтобы мы это сделали
вряд ли вернётся собака, и тогда
вещь никогда не будет достигнута, вы увидите здесь
как о, извините, вы знаете случайную вещь
это все, что сейчас имеет место, когда
они были едва собакой вообще
см. здесь, что хорошо, теперь мы едва ли
собака, и мы также сделаем так, чтобы это
следующая итерация никогда не случится так, если
вы вызываете return со значением, которое будет
в конечном итоге , это то, что вы получаете из
вызов следующим при вызове его из
вне, я замечаю, что если я просто
вызов запустите это пару раз, когда вы видите
здесь, что хорошо в этот раз вокруг нас
вряд ли собака, потому что это
эта вещь здесь обратилась в ложь, поэтому
просто правда, извините, верните истину и что
заставили нас вернуться рано, как вы видите здесь, если
мы делаем это явно, как
это на самом деле то, что произошло, когда вы
просто введите return в JavaScript, это
что это эффект, так что это суть
о том, как работают генераторы, но я действительно хочу
вернуться к моим предыдущим заявлениям о том, что
они похожи на синтаксический сахар, который
помогает нам легко создавать итераторы просто
чтобы вы доверяли мне
и перейдите к переписыванию некоторых драконов как
нормальная функция, это будет делать точно
то же самое, но мы собираемся это сделать
позвольте мне только возвращать итераторы
прокомментируйте это, что делать с функцией
mmm sound dragon Мне нужен изменчивый
переменная называется « гонка», она собирается
начните с минус 1, тогда мы собираемся создать
итератор mmm right mm-hmm
и помните итератор хорошо да вы
можно увидеть здесь , что итератор
то, что мы можем назвать дальше
мм гм
и следующий должен дать нам следующий
объект в вещи ничего и
Следующий объект будет первым
объект, который является пушистым драконом какого- то дракона
но mmm хорошо, давайте фактически сделаем это
верните любовькин дракона, но помните
что итератор не хочет просто
значение, потому что ему нужно знать,
мы закончили или нет внешний мир
должен знать , что это в дополнение к
важно знать, что мы делаем
и мы готовы ах это пока что мы
фактически сделано, потому что есть только один
один до сих пор в нашем итераторе
мы добираемся туда, чтобы отметить и вряд ли
собака может быть, но все в порядке, это не
не может читать, вероятно, следующий после штрафа
это потому, что мы не возвращаем наши
итератор, так что некоторые драконы так
помните, что это просто возвращение на поиски
поэтому нам действительно нужно вернуть
итератор в порядке, поэтому наш итератор вроде
сорта работ дает нам всю ценность
время
Вы не давайте давайте продолжим здесь
нужно теперь нам нужно, чтобы мы
во второй раз это называется мы хотели
вернуть знак прекрасного дракона, чтобы мы
нужно начать увеличивать это
вещь, которое здесь содержит вкладку
сколько звонков мы сделали с директором
итерации плюс шина, и если мы, если
итерации да это нуль, тогда мы
возвращают пушистые, но если итерации
копирование / вставка, если это тогда
мы собираемся вернуться маркировать огонь
дракон знак тонкая грань жаль
что
и, как будто мы не закончили, и теперь мы
как мы продолжаем нашу драконькую вещь
здесь так хорошо, это выглядит хорошо
пока мы перейдем к этой вещи, если
математика , что мы будем возвращение рано
если это рационы равны двум, а также если
это дело, тогда мы собираемся
возвращение стороны они не ценят партию в
точка, а затем мы на самом деле можем
на самом деле не жуют, и если
иначе мы просто вернемся, мы
сделать здесь больше нечего и
это и это позволяет мне уменьшить
размер здесь, потому что это совсем немного
кодирования вам нужно увидеть все это
о, это крошечный извините за мобильный
люди, которых вы должны косовать, но теперь вы
см. здесь, что
итератор, следующий итератор шеи дает нам
какой-то дракон, и если мы запустим пару
Иногда мы иногда с трудом получаем собаку
так что вы не видите здесь ничего волшебного
об итераторе, чтобы мы всегда могли делать
что делает генератор с использованием нормального
функция, которая возвращает итератор, но как
вы видите, что генераторы по- прежнему велики
потому что , как это это очень лаконично
и, на мой взгляд, очень читаемый, поэтому последний
неделю мы смотрели на итераторы сегодня мы
посмотрели на генераторы, но мы
все еще просто царапает поверхность всех
это, например, итераторы могут быть
потребляется другими вещами, чем для
петля или вручную, как мы это делали здесь
итераторы могут быть синхронными и
генераторы также могут быть синхронными
в настоящее время и, следовательно, цикла имеет a для
поживем мяч так , что может быть
синхронно также есть так много
классный материал, который мы можем узнать об этом
если вам интересно, напишите
комментарии внизу на то , что вы бы
любят слышать снова и снова сегодняшние
эпизод был спонсирован подсказкой, если вы
знайте кого-то, кто хотел бы работать с
реагировать на родные и узловые
стокгольм отправить их первоклассной комм
слэш приложение и приложение, что дамы также могут
быть эпизодическим описанием, и это ты
просто смотрят эпизод веселья
функция я выпускаю каждый понедельник
утро Oh 800 GMT, если вы забыли
вы можете подписаться здесь или посмотреть другое
эпизод прямо сейчас , нажав здесь
Я буду mvj до следующего утра в понедельник, спасибо
вы
Please follow and like us:

Be First to Comment

Добавить комментарий