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

preview_player
Показать описание
Разберемся с асинхронностью в JavaScript, выберемся из callback hell, пообещаем разобраться с обещаниями, посмотрим на async/await, узнаем, что не все await одинаково полезны, а в конце эпично уйдем в закат.

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

Качество материала на единицу времени зашкаливает!

INetreba
Автор

Обожаю этого лектора! Всегда классно и интересно рассказывает, а главное — с любовью к делу.

Figurum
Автор

Лучшей лекции по асинхронному программированию я не встречал. Каждая минута - кладезь полезной информации

thomasanderson
Автор

Григорий, спасибо за замечательную лекцию! Одно из лучших видео по js на моей памяти

iamyourlastregret
Автор

Нет слов, с первых минут затянуло до самого конца. 👏

gattygamaun
Автор

Крутейшая лекция и лектор, большое спасибо!

mykhailostepanishchev
Автор

Спасибо Григорию, крутейшая лекция. Отлично упаковал информацю - концентрированные систематизированные знания + интересная подача 👍

sergeykashko
Автор

потрясающее изложение! Григорий, Вам однозначно нужен свой ютуб-канал!

aluminservice
Автор

Лекцию супер, а можно ли где-то скачать презентацию? Спасибо!

victoriatroekurova
Автор

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 Итого

knowledge
Автор

Здравствуйте, есть ли презентация в открытом доступе?

DanilaSiniak
Автор

материал из книги you don't know js Кайла Симпсона)

burtartburtart
Автор

Ссылки на презентации выкладывайте, пожалуйста, ШРИ.

rinatvaliullov
Автор

Very useful, especially in rusland language domain

romandavydov
Автор

ПРОШУ ВАШЕГО ВНИМАНИЯ!!! ПОЛНЫЙ РАЗБОР И РАЗНОС!!!! --> ⎡msk⎦ Разбираем видео: "Продвинутый JS (Григорий Бизюкин)"

theoty-js
Автор

Скажите пожалуйста - fetch относится к микро или макрозадачам? И почему?

velikorossnationalist
Автор

Хоть бы дали ссылку на презентацию.
Штош... Комментарии с ссылками сразу удаляют...

MrLuckfinder
Автор

про генераторы нихера непонятно, пока не прочитаешь на learn.javascript не поймешь, как можно пробегаться по такой куче сложных тем за час. эта лекция рассчитана только для вводного ознакомления. но никак не для того чтобы понять

userJakov
Автор

На слайде 57 ошибка. Promise.race разрешит первое значение массива, т.е. ананас

denis
Автор

40:01
Promise.race([Promise.resolve("ананас"), "арбуз"])
Странно, но возвращает не арбуз, а ананас.

TheWorldIsMne