Примеры кода: github.com/HowProgrammingWork... Библиотека do: github.com/metarhia/do Курс «100 лекций по программированию» habr.com/post/427799/ #колбек #асинхронное программирование #javascript #js #callback
Пікірлер: 25
@antontelichenko21022 жыл бұрын
1:20 пример callback функции 2:40 пример последовательного исполнения callback функций 5:52 пример параллельного исполнения async функций c использованием wrapAsync 15:18 пример последовательного исполнения async функций c использованием wrapAsync 19:05 chain исполнение async функций 41:16 где можно встретить асинхронные функции
@user-wv7tx4mb6d4 жыл бұрын
Самый лучший лектор , все очень подробно))))
@TheSupermaniaco4 жыл бұрын
В этом видео лучшее объяснение асинхронности на callback, из тех, что я видел в русскоязычном интернет!
@puerrobustus2 жыл бұрын
Как представлю, что лектора могли заставить читать лекции на суржике...
@TimurSevimli Жыл бұрын
Спасибо вам огромное Тимур Гафарович! Кроме асинхронности мне очень понравилось увидеть как вы используете рекурсию, такими примерами лучше собирается картинка и начинаешь понимать где что можно использовать. А затем показали еще лучший вариант с прототипами и рассказали плюсы-минусы. Просто респект вам
@valovweb5 жыл бұрын
Интересные примеры
@antonanton227435 жыл бұрын
спасибо )
@Antonio-fm1sq2 жыл бұрын
Спасибо!
@AndreyEricksonGame2 жыл бұрын
28:00 - .do(readConfig, 'myConfig', 10, ...) - множественная передача аргументов в метод do сломает скрипт, т.к. передаваемая callback-функция в wrapAsync ожидает всего 2 аргумента, а мы пытаемся впихнуть список. Если только последним аргументом в callback-функцию указывать, что мы готовы принимать любое кол-во аргументов, примерно так - (name, callback, ...args) => { }. Если ошибаюсь, поправьте)
@donBerezza3 жыл бұрын
А можно, пожалуйста, объяснить, зачем здесь(в chain) используется двусвязанный список, разве не легче было бы использовать простой массив и пушить в него те функции, которые были переданы в do?
@drak0an2 жыл бұрын
великолепный лектор, за исключением "кур". [Карент]/[кэрент] же (британское/американское произношение).
@TimurShemsedinov2 жыл бұрын
Лекция не на английском, все случаи схожести итшных терминов с английскими словами чисто случайны
@drak0an2 жыл бұрын
@@TimurShemsedinov ХD Я себе его (cur) всегда бурчал как "кар". Спасибо за лекции!
@user-wj8xg3er8h3 жыл бұрын
Я правильно понимаю что setTimeout и setInterval ключевые механизмы для построения асинхронности на callback? Просто я понимаю как сейчас можно использовать async/await без setTimeout и вызвать например запрос на интерфейс где данные будут считываться минуту например, при этом не блокируя поток. Но без setTimeout асинхронно же нельзя так сделать? Или есть другие механизмы (помимо современных Promise и async/await)? Ведь если просто вызывать функции, которые будут выполнять какие-то действия в фоне внутри других функций, то они будут блокировать поток, если они не асинхронные.
@TimurShemsedinov3 жыл бұрын
Асинхронный ввод-вывод делается не через таймеры, а через асинхронное API, оно может быть или на колбеках или на просисах (это и асинк-эветы) или на событиях (ивент эмиттер), и асинхронный ввод-вывод использует тред-пул и ивент-луп для исполнения всех этих операций другими потоками, пока у нас js исполняется в основном потоке. У меня же целый корс по асинхронщине, посмотрите.
@user-wj8xg3er8h3 жыл бұрын
@@TimurShemsedinov спасибо
@pavpav15734 жыл бұрын
Не могу найти предыдущую лекцию по асинхронности в JS, о которой вы упоминаете а начале , не могли бы дать ссылку на неё?
@TimurShemsedinov4 жыл бұрын
Асинхронное программирование в Node.js и JavaScript kzfaq.info/get/bejne/nr9mjZmis7_enZc.html
@valovweb5 жыл бұрын
Функция chain по сути похожа на реализацию промиса
@victorklimov52543 жыл бұрын
chain - похожа на промис. Event emitter - тоже похож на промис
@user-pd8pw4uq5v3 жыл бұрын
sum(5, 2, console.log.bind(null, 'sum(5, 2) =')); Как вообще это работает?)) я имею в виду Bind и console.log
@victorklimov52543 жыл бұрын
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind мы можем с помощью bind привязать контекст и положить аргументы. Здесь контекст нам привязывать не нужно. Мы только положили аргумент. И получается partial application. И теперь мы можем вызываеть вот так: console.log.bind(null, 'sum(5, 2)')(some_argument) Аналог кода console.log.bind(null, 'sum(5, 2)') это следующий код: (...args) => console.log(sum(5,2)', ...args)