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

  Рет қаралды 10,419

Timur Shemsedinov

Timur Shemsedinov

5 жыл бұрын

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

Пікірлер: 31
@alexdr1279
@alexdr1279 4 жыл бұрын
елки палки... почему только сейчас я нашел этот канал?( Низкий поклон, Тимур!
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
Дополню, что стеденты подсказали полезный пример использования .throw в асинхронном генераторе - это перехват ошибки в самом генераторе через try - github.com/HowProgrammingWorks/AsyncGenerator/blob/master/JavaScript/d-throw.js
@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 Обобщение
@RockyTheDog756
@RockyTheDog756 Жыл бұрын
Спасибо огромное за труд!
@anryzhov
@anryzhov 5 жыл бұрын
Благодарю!
@kirillpospolitaki860
@kirillpospolitaki860 2 жыл бұрын
Благодарность!
@Antonio-fm1sq
@Antonio-fm1sq 2 жыл бұрын
Спасибо!
@mikaputa2194
@mikaputa2194 Жыл бұрын
Super
@drmonochromer
@drmonochromer 3 жыл бұрын
Спасибо! Хотелось бы послушать про реализацию каналов на генераторах, про которую рассказывал Кайл Симпсон в книге You don't now js
@TimurShemsedinov
@TimurShemsedinov 3 жыл бұрын
Ссылку или пример кода можно?
@oleg_shulga
@oleg_shulga Жыл бұрын
Вы так и не ответили
@chikenmacnugget
@chikenmacnugget Жыл бұрын
@@oleg_shulga пример он так тож и не получил
@jorgenUA
@jorgenUA 3 жыл бұрын
в b-yield.js не нужна конструкция if (value > end) return;. Нужно просто поменять местами value += delta; и yield value; Ну, бывает..
@k2maniacco
@k2maniacco 4 жыл бұрын
У Вас перепутаны ссылки под видео. На генераторах стоит ссылка на асинхронные генераторы, а на асинхронных генераторах стоит ссылка на генераторы
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Спасибо! Исправил
@k2maniacco
@k2maniacco 4 жыл бұрын
@@TimurShemsedinov Пожалуйста. Вам спасибо за Вашу работу!
@user-vx9ug1nb2t
@user-vx9ug1nb2t 4 жыл бұрын
Методы .throw и .return устанавливают генератору done:true. Возможно, их основная задача - управлять генератором снаружи.
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Это сомнительная идея, примерно, как управление промисом снаружи.
@leilaoskanova7557
@leilaoskanova7557 Жыл бұрын
Был случай недавно Выбирает человек фильтр на фронте и мне по значению из фильтра нужно из плоской структуры собрать несколько древовидных Итерации были асинхронными, чтобы не блокировать поток, но суть не в этом, а в том, что построение деревьев до 5 сек могло занимать Если в течении этих 5 сек человек выберет другой фильтр, мне нужно тут же прекратить итерирование по массиву и начать итерироваться заново уже с новым значением Как это можно сделать без функции return? По моему в данном случае прерывать итерацию не сомнительная идея Спасибо
@igorsavelev9013
@igorsavelev9013 Жыл бұрын
Тимур, а как то используете на практике генераторы?
@TimurShemsedinov
@TimurShemsedinov Жыл бұрын
Это универсальный интерфейс асинхронного итерирования, можно для итерирования по записям в базе данных или других хранилищах, для потоков с заранее неизвестным размером, множество применений...
@TimurShemsedinov
@TimurShemsedinov Жыл бұрын
Пока не было async/await синтаксиса, то вообще асинхронность через этот контракт делали, сейчас это уже отошло в прошлое, но все равно много применений по прямому назначению, для итерирования
@igorsavelev9013
@igorsavelev9013 Жыл бұрын
@@TimurShemsedinov сам видел применение в двух библиотеках: redux-saga и react-virtualize-tree, поэтому и хотелось бы увидеть примеры ещё какие то
@TimurShemsedinov
@TimurShemsedinov Жыл бұрын
@@igorsavelev9013 в других лекциях есть
@user-yu7gm4df3f
@user-yu7gm4df3f 3 жыл бұрын
ничего не понял .. что такое a * this.value ?
@user-yu7gm4df3f
@user-yu7gm4df3f 3 жыл бұрын
а .. это знак умножить ))
@indigosay
@indigosay 4 жыл бұрын
Для тех, у кого возникли проблемы в понимании на 44:30 jsfiddle.net/xreider/3wjhd7xa/
@KostiaBazrov
@KostiaBazrov 4 жыл бұрын
максимально неудобно! Юзай DevTools
@externuz
@externuz 2 жыл бұрын
Не могу серьезно воспринимать профессионала, который читает "ретурн".
@Hey__Luna__912
@Hey__Luna__912 2 жыл бұрын
сложно слушать и концентрироваться...сбивчивая, нечеткая речь
@timashoff
@timashoff Жыл бұрын
Спасибо!
React JS c Нуля - Курс для начинающих БЕЗ ВОДЫ [2024]
3:42:01
Владилен Минин
Рет қаралды 236 М.
100😭🎉 #thankyou
00:28
はじめしゃちょー(hajime)
Рет қаралды 56 МЛН
Super gymnastics 😍🫣
00:15
Lexa_Merin
Рет қаралды 21 МЛН
Реактивное программирование на JavaScript
36:59
Proxy и Symbol в JavaScript
48:29
Timur Shemsedinov
Рет қаралды 10 М.
03. Асинхронность в JS - Григорий Бизюкин
1:08:39
Yandex for Frontend
Рет қаралды 53 М.
Интроспекция и рефлексия в JavaScript
1:02:33
Timur Shemsedinov
Рет қаралды 6 М.