Генераторы и асинхронные генераторы в JavaScript

  Рет қаралды 11,124

Timur Shemsedinov

Timur Shemsedinov

Күн бұрын

Генераторы: github.com/How...
Асинхронные генераторы: github.com/How...
Курс «100 лекций по программированию» habr.com/post/...
#генераторы #generator #итератор #итераторы #asyncgenerator #asynciterable #asyncgenerator #asynciterator #промис #nodejs #javascript #js

Пікірлер: 31
@anatolykobzisty9827
@anatolykobzisty9827 4 жыл бұрын
00:00 Способы объявления генераторов 10:41 Пример генератора с yield 15:54 Пример генератора с yield и return 18:47 Получение значений из генератора циклом for...of 21:04 Получение значений из генератора spead - оператором 21:50 Метод next 23:30 Пример генератора с yield * возвращающего итерируемые объекты 25:05 Пример генератора с yield * возвращающего другие генераторы 26:18 Метод return 28:11 Метод throw 29:05 Обобщение
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
Дополню, что стеденты подсказали полезный пример использования .throw в асинхронном генераторе - это перехват ошибки в самом генераторе через try - github.com/HowProgrammingWorks/AsyncGenerator/blob/master/JavaScript/d-throw.js
@alexdr1279
@alexdr1279 4 жыл бұрын
елки палки... почему только сейчас я нашел этот канал?( Низкий поклон, Тимур!
@RockyTheDog756
@RockyTheDog756 2 жыл бұрын
Спасибо огромное за труд!
@anryzhov
@anryzhov 5 жыл бұрын
Благодарю!
@kirillpospolitaki860
@kirillpospolitaki860 3 жыл бұрын
Благодарность!
@k2maniacco
@k2maniacco 4 жыл бұрын
У Вас перепутаны ссылки под видео. На генераторах стоит ссылка на асинхронные генераторы, а на асинхронных генераторах стоит ссылка на генераторы
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Спасибо! Исправил
@k2maniacco
@k2maniacco 4 жыл бұрын
@@TimurShemsedinov Пожалуйста. Вам спасибо за Вашу работу!
@Antonio-fm1sq
@Antonio-fm1sq 3 жыл бұрын
Спасибо!
@МаксимКоковин-и9к
@МаксимКоковин-и9к 4 жыл бұрын
Методы .throw и .return устанавливают генератору done:true. Возможно, их основная задача - управлять генератором снаружи.
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Это сомнительная идея, примерно, как управление промисом снаружи.
@leilaoskanova7557
@leilaoskanova7557 2 жыл бұрын
Был случай недавно Выбирает человек фильтр на фронте и мне по значению из фильтра нужно из плоской структуры собрать несколько древовидных Итерации были асинхронными, чтобы не блокировать поток, но суть не в этом, а в том, что построение деревьев до 5 сек могло занимать Если в течении этих 5 сек человек выберет другой фильтр, мне нужно тут же прекратить итерирование по массиву и начать итерироваться заново уже с новым значением Как это можно сделать без функции return? По моему в данном случае прерывать итерацию не сомнительная идея Спасибо
@drmonochromer
@drmonochromer 3 жыл бұрын
Спасибо! Хотелось бы послушать про реализацию каналов на генераторах, про которую рассказывал Кайл Симпсон в книге You don't now js
@TimurShemsedinov
@TimurShemsedinov 3 жыл бұрын
Ссылку или пример кода можно?
@oleg_shulga
@oleg_shulga 2 жыл бұрын
Вы так и не ответили
@chikenmacnugget
@chikenmacnugget 2 жыл бұрын
@@oleg_shulga пример он так тож и не получил
@igorsavelev9013
@igorsavelev9013 2 жыл бұрын
Тимур, а как то используете на практике генераторы?
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
Это универсальный интерфейс асинхронного итерирования, можно для итерирования по записям в базе данных или других хранилищах, для потоков с заранее неизвестным размером, множество применений...
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
Пока не было async/await синтаксиса, то вообще асинхронность через этот контракт делали, сейчас это уже отошло в прошлое, но все равно много применений по прямому назначению, для итерирования
@igorsavelev9013
@igorsavelev9013 2 жыл бұрын
@@TimurShemsedinov сам видел применение в двух библиотеках: redux-saga и react-virtualize-tree, поэтому и хотелось бы увидеть примеры ещё какие то
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
@@igorsavelev9013 в других лекциях есть
@jorgenUA
@jorgenUA 4 жыл бұрын
в b-yield.js не нужна конструкция if (value > end) return;. Нужно просто поменять местами value += delta; и yield value; Ну, бывает..
@ИванПетров-б8в6щ
@ИванПетров-б8в6щ 3 жыл бұрын
ничего не понял .. что такое a * this.value ?
@ИванПетров-б8в6щ
@ИванПетров-б8в6щ 3 жыл бұрын
а .. это знак умножить ))
@indigosay
@indigosay 5 жыл бұрын
Для тех, у кого возникли проблемы в понимании на 44:30 jsfiddle.net/xreider/3wjhd7xa/
@externuz
@externuz 2 жыл бұрын
Не могу серьезно воспринимать профессионала, который читает "ретурн".
@KostiaBazrov
@KostiaBazrov 5 жыл бұрын
максимально неудобно! Юзай DevTools
@Hey__Luna__912
@Hey__Luna__912 2 жыл бұрын
сложно слушать и концентрироваться...сбивчивая, нечеткая речь
@timashoff
@timashoff Жыл бұрын
Спасибо!
I thought one thing and the truth is something else 😂
00:34
عائلة ابو رعد Abo Raad family
Рет қаралды 10 МЛН
Асинхронные адаптеры: promisify, callbackify, asyncify...
20:45
Перечислимый тип (enum) в JavaScript и TypeScript
44:23
Timur Shemsedinov
Рет қаралды 6 М.
Асинхронные коллекторы данных
26:28
Timur Shemsedinov
Рет қаралды 4,2 М.
Proxy и Symbol в JavaScript
48:29
Timur Shemsedinov
Рет қаралды 10 М.
Функциональное программирование на JavaScript
1:35:26