No video

Асинхронное программирование на callback`ах в JavaScript

  Рет қаралды 14,525

Timur Shemsedinov

Timur Shemsedinov

5 жыл бұрын

Примеры кода: github.com/HowProgrammingWork...
Библиотека do: github.com/metarhia/do
Курс «100 лекций по программированию» habr.com/post/427799/
#колбек #асинхронное программирование #javascript #js #callback

Пікірлер: 25
@antontelichenko2102
@antontelichenko2102 2 жыл бұрын
1:20 пример callback функции 2:40 пример последовательного исполнения callback функций 5:52 пример параллельного исполнения async функций c использованием wrapAsync 15:18 пример последовательного исполнения async функций c использованием wrapAsync 19:05 chain исполнение async функций 41:16 где можно встретить асинхронные функции
@user-wv7tx4mb6d
@user-wv7tx4mb6d 4 жыл бұрын
Самый лучший лектор , все очень подробно))))
@TheSupermaniaco
@TheSupermaniaco 4 жыл бұрын
В этом видео лучшее объяснение асинхронности на callback, из тех, что я видел в русскоязычном интернет!
@puerrobustus
@puerrobustus 2 жыл бұрын
Как представлю, что лектора могли заставить читать лекции на суржике...
@TimurSevimli
@TimurSevimli Жыл бұрын
Спасибо вам огромное Тимур Гафарович! Кроме асинхронности мне очень понравилось увидеть как вы используете рекурсию, такими примерами лучше собирается картинка и начинаешь понимать где что можно использовать. А затем показали еще лучший вариант с прототипами и рассказали плюсы-минусы. Просто респект вам
@valovweb
@valovweb 5 жыл бұрын
Интересные примеры
@antonanton22743
@antonanton22743 5 жыл бұрын
спасибо )
@Antonio-fm1sq
@Antonio-fm1sq 2 жыл бұрын
Спасибо!
@AndreyEricksonGame
@AndreyEricksonGame 2 жыл бұрын
28:00 - .do(readConfig, 'myConfig', 10, ...) - множественная передача аргументов в метод do сломает скрипт, т.к. передаваемая callback-функция в wrapAsync ожидает всего 2 аргумента, а мы пытаемся впихнуть список. Если только последним аргументом в callback-функцию указывать, что мы готовы принимать любое кол-во аргументов, примерно так - (name, callback, ...args) => { }. Если ошибаюсь, поправьте)
@donBerezza
@donBerezza 3 жыл бұрын
А можно, пожалуйста, объяснить, зачем здесь(в chain) используется двусвязанный список, разве не легче было бы использовать простой массив и пушить в него те функции, которые были переданы в do?
@drak0an
@drak0an 2 жыл бұрын
великолепный лектор, за исключением "кур". [Карент]/[кэрент] же (британское/американское произношение).
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
Лекция не на английском, все случаи схожести итшных терминов с английскими словами чисто случайны
@drak0an
@drak0an 2 жыл бұрын
@@TimurShemsedinov ХD Я себе его (cur) всегда бурчал как "кар". Спасибо за лекции!
@user-wj8xg3er8h
@user-wj8xg3er8h 3 жыл бұрын
Я правильно понимаю что setTimeout и setInterval ключевые механизмы для построения асинхронности на callback? Просто я понимаю как сейчас можно использовать async/await без setTimeout и вызвать например запрос на интерфейс где данные будут считываться минуту например, при этом не блокируя поток. Но без setTimeout асинхронно же нельзя так сделать? Или есть другие механизмы (помимо современных Promise и async/await)? Ведь если просто вызывать функции, которые будут выполнять какие-то действия в фоне внутри других функций, то они будут блокировать поток, если они не асинхронные.
@TimurShemsedinov
@TimurShemsedinov 3 жыл бұрын
Асинхронный ввод-вывод делается не через таймеры, а через асинхронное API, оно может быть или на колбеках или на просисах (это и асинк-эветы) или на событиях (ивент эмиттер), и асинхронный ввод-вывод использует тред-пул и ивент-луп для исполнения всех этих операций другими потоками, пока у нас js исполняется в основном потоке. У меня же целый корс по асинхронщине, посмотрите.
@user-wj8xg3er8h
@user-wj8xg3er8h 3 жыл бұрын
@@TimurShemsedinov спасибо
@pavpav1573
@pavpav1573 4 жыл бұрын
Не могу найти предыдущую лекцию по асинхронности в JS, о которой вы упоминаете а начале , не могли бы дать ссылку на неё?
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Асинхронное программирование в Node.js и JavaScript kzfaq.info/get/bejne/nr9mjZmis7_enZc.html
@valovweb
@valovweb 5 жыл бұрын
Функция chain по сути похожа на реализацию промиса
@victorklimov5254
@victorklimov5254 3 жыл бұрын
chain - похожа на промис. Event emitter - тоже похож на промис
@user-pd8pw4uq5v
@user-pd8pw4uq5v 3 жыл бұрын
sum(5, 2, console.log.bind(null, 'sum(5, 2) =')); Как вообще это работает?)) я имею в виду Bind и console.log
@victorklimov5254
@victorklimov5254 3 жыл бұрын
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)
Finger Heart - Fancy Refill (Inside Out Animation)
00:30
FASH
Рет қаралды 31 МЛН
👨‍🔧📐
00:43
Kan Andrey
Рет қаралды 7 МЛН
Bony Just Wants To Take A Shower #animation
00:10
GREEN MAX
Рет қаралды 3,1 МЛН
Асинхронные коллекторы данных
26:28
Timur Shemsedinov
Рет қаралды 4 М.
Коллекции, множества, хештаблицы в JavaScript
50:42
Асинхронность с библиотекой async.js
37:43
Timur Shemsedinov
Рет қаралды 4,7 М.
Шаблон Singleton (синглтон) в  JavaScript
11:39
Timur Shemsedinov
Рет қаралды 9 М.
Finger Heart - Fancy Refill (Inside Out Animation)
00:30
FASH
Рет қаралды 31 МЛН