03. Асинхронность в JS - Григорий Бизюкин

  Рет қаралды 53,689

Yandex for Frontend

Yandex for Frontend

2 жыл бұрын

Разберемся с асинхронностью в JavaScript, выберемся из callback hell, пообещаем разобраться с обещаниями, посмотрим на async/await, узнаем, что не все await одинаково полезны, а в конце эпично уйдем в закат.
Иначе говоря, простым языком обсудим важные темы:
- цикл событий в браузере (event loop)
- очередь задач (tasks queue) и микрозадач (microtasks queue)
- функции обратного вызова (callback)
- обещания (promise)
- сопрограммы или корутины (coroutine)
- async и await
- состояние гонки (race condition)
- микропаттерны для оптимизации debounce и throttle

Пікірлер: 40
@Figurum
@Figurum 6 ай бұрын
Обожаю этого лектора! Всегда классно и интересно рассказывает, а главное - с любовью к делу.
@thomasanderson3145
@thomasanderson3145 2 жыл бұрын
Лучшей лекции по асинхронному программированию я не встречал. Каждая минута - кладезь полезной информации
@gattygamaun7941
@gattygamaun7941 2 жыл бұрын
Нет слов, с первых минут затянуло до самого конца. 👏
@iamyourlastregret
@iamyourlastregret 2 жыл бұрын
Григорий, спасибо за замечательную лекцию! Одно из лучших видео по js на моей памяти
@sergeykashko7291
@sergeykashko7291 Жыл бұрын
Спасибо Григорию, крутейшая лекция. Отлично упаковал информацю - концентрированные систематизированные знания + интересная подача 👍
@DianaPure
@DianaPure 2 жыл бұрын
Какая крутая лекция!🔥👏🏻 Спасибо!
@kostyakozlov5289
@kostyakozlov5289 2 жыл бұрын
Григорий Бизюкин красавчик
@mickkoch563
@mickkoch563 Жыл бұрын
Мой любимый лектор.
@dudovichenko
@dudovichenko 11 ай бұрын
Григорий, респект! Подача - супер!
@mykhailostepanishchev6472
@mykhailostepanishchev6472 2 жыл бұрын
Крутейшая лекция и лектор, большое спасибо!
@eugenedavidoff6996
@eugenedavidoff6996 2 жыл бұрын
Спасибо, интересно было послушать)
@GagikHarutyunyan_dev
@GagikHarutyunyan_dev 2 жыл бұрын
Лучший просто
@aluminservice7871
@aluminservice7871 Жыл бұрын
потрясающее изложение! Григорий, Вам однозначно нужен свой ютуб-канал!
@TheILOVEYOUXD
@TheILOVEYOUXD 2 жыл бұрын
Спасибо тебе дядь
@knowledge9396
@knowledge9396 22 күн бұрын
00:01:55 Event Loop 00:02:34 Call Stack 00:03:38 Render Queue 00:04:14 Tasck Queue 00:05:36 MicroTasck Queue 00:07:16 Evet Loop - Коротко 00:08:02 Обработчики событий 00:09:20 Таймеры в JavaScript 00:13:45 Микрозадачи 00:15:07 requestAnimationFrame 00:17:07 Изолированность EventLoop 00:18:14 postMessage 00:20:27 Различные способы использования Event Loop 00:21:13 Callback Hell и Pyramid of Doom 00:25:30 Promise 00:35:11 Promise.resolve и Promise.reject 00:38:24 Promise.all 00:39:20 Promise.race 00:41:18 Promise.prototype.finally 00:42:24 Promise.allSettled 00:43:04 Promise.any 00:43:29 Всемогущий Promise 00:46:24 Итераторы и Генераторы 00:47:52 Итератор в JavaScript 00:49:05 Генератор в JavaScript 00:49:55 Общение итератора с внешним миром 00:52:56 Итератор - это корутина (сопрограмма) 00:53:52 Магическая функция async 00:55:13 Async / Await 00:56:49 Обработка ошибок 00:58:51 Что использовать Callback, Promise или Async / Await 01:00:13 Race Condition 01:02:03 Решение Race Condition 01:03:27 Debounce и Throttle 01:05:36 Итого
@funfunfunnyfun8821
@funfunfunnyfun8821 Жыл бұрын
Гений
@victoriatroekurova7414
@victoriatroekurova7414 Жыл бұрын
Лекцию супер, а можно ли где-то скачать презентацию? Спасибо!
@burtartburtart1517
@burtartburtart1517 Жыл бұрын
материал из книги you don't know js Кайла Симпсона)
@DanilaSiniak
@DanilaSiniak 2 жыл бұрын
Здравствуйте, есть ли презентация в открытом доступе?
@theoty-js
@theoty-js 11 ай бұрын
ПРОШУ ВАШЕГО ВНИМАНИЯ!!! ПОЛНЫЙ РАЗБОР И РАЗНОС!!!! --> ⎡msk⎦ Разбираем видео: "Продвинутый JS (Григорий Бизюкин)"
@vastargazing8957
@vastargazing8957 4 ай бұрын
Сам то проверял его утверждения? Слепо копируешь.
@rinatvaliullov3247
@rinatvaliullov3247 Жыл бұрын
Ссылки на презентации выкладывайте, пожалуйста, ШРИ.
@romandavydov3738
@romandavydov3738 Жыл бұрын
Very useful, especially in rusland language domain
@velikorossnationalist4259
@velikorossnationalist4259 2 жыл бұрын
Скажите пожалуйста - fetch относится к микро или макрозадачам? И почему?
@kotikvacia9970
@kotikvacia9970 2 жыл бұрын
Fetch возвращает Promise и поэтому относится к микротаскам, но есть тонкости в порядке setTimeout(() => {...}, 0) и fetch (если интересно почитать, то вот вопрос на stackoverflow questions/61890737/executing-priority-of-fetch-and-settimeout-in-chrome)
@velikorossnationalist4259
@velikorossnationalist4259 2 жыл бұрын
@@kotikvacia9970 спасибо за ответ!
@Skaz_.
@Skaz_. 2 жыл бұрын
49:15
@gnomframe1563
@gnomframe1563 8 ай бұрын
ЙЫЛД
@kamranloki3792
@kamranloki3792 2 жыл бұрын
где ссылки из видео?
@MrLuckfinder
@MrLuckfinder 2 жыл бұрын
Хоть бы дали ссылку на презентацию. Штош... Комментарии с ссылками сразу удаляют...
@devofy
@devofy 2 жыл бұрын
А где эти ссылки берут?
@MrLuckfinder
@MrLuckfinder 2 жыл бұрын
@@devofy Яндекс... Найдётся, наверное...
@user-dr7im3tk3e
@user-dr7im3tk3e 7 ай бұрын
Таймкоды бы еще добавить
@userJakov
@userJakov 4 ай бұрын
про генераторы нихера непонятно, пока не прочитаешь на learn.javascript не поймешь, как можно пробегаться по такой куче сложных тем за час. эта лекция рассчитана только для вводного ознакомления. но никак не для того чтобы понять
@userJakov
@userJakov 4 ай бұрын
местами слишком сложно, и непонятно
@denis793
@denis793 2 жыл бұрын
На слайде 57 ошибка. Promise.race разрешит первое значение массива, т.е. ананас
@MashaKovach
@MashaKovach 2 жыл бұрын
тут как бы не первое значение по счету получим, а более быстрое, прям как в примере с логами в начале видео, промису с ананасом еще нужно выполнится, а арбузик получим сразу
@Londeren
@Londeren Жыл бұрын
​@@MashaKovach Promise.race([Promise.resolve(1), 2]).then(console.log) Можете протестировать, выведется 1
@TheWorldIsM1ne
@TheWorldIsM1ne Жыл бұрын
40:01 Promise.race([Promise.resolve("ананас"), "арбуз"]) Странно, но возвращает не арбуз, а ананас.
@leetcode24
@leetcode24 11 ай бұрын
ПРОШУ ВАШЕГО ВНИМАНИЯ!!! ПОЛНЫЙ РАЗБОР И РАЗНОС!!!! --> ⎡msk⎦ Разбираем видео: "Продвинутый JS (Григорий Бизюкин)"
04. RxJS -  Юрий Стромов
39:16
Yandex for Frontend
Рет қаралды 10 М.
The child was abused by the clown#Short #Officer Rabbit #angel
00:55
兔子警官
Рет қаралды 19 МЛН
МАМА И STANDOFF 2 😳 !FAKE GUN! #shorts
00:34
INNA SERG
Рет қаралды 4,1 МЛН
Haha😂 Power💪 #trending #funny #viral #shorts
00:18
Reaction Station TV
Рет қаралды 15 МЛН
My little bro is funny😁  @artur-boy
00:18
Andrey Grechka
Рет қаралды 11 МЛН
Просто o async, await. Без циклов и таймеров. JavaScript
15:55
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 96 М.
Чего ожидать от HTTP/3 + Go
51:07
Нина Пакшина
Рет қаралды 641
16. Продвинутый JS - Григорий Бизюкин
1:39:38
Yandex for Frontend
Рет қаралды 30 М.
Продвинутый JavaScript
1:39:36
Yandex for Frontend
Рет қаралды 97 М.
Андрей Мелихов - V8 под капотом
59:57
Что такое промисы в JavaScript. Фундаментальный JavaScript
24:51
Михаил Непомнящий
Рет қаралды 42 М.
React: монтируй, демонтируй, обновляй
1:24:33
Yandex for Frontend
Рет қаралды 46 М.
The child was abused by the clown#Short #Officer Rabbit #angel
00:55
兔子警官
Рет қаралды 19 МЛН