Разбираем Event loop на примерах | микро, макро таски, nextTick, setImmediate | Уроки JavaScript

Поділитися
Вставка
  • Опубліковано 18 гру 2024

КОМЕНТАРІ • 112

  • @АлексейКресников
    @АлексейКресников 2 роки тому +14

    Спасибо за объяснение, очень подробно и понятно, рекомендую новичкам к просмотру. В русскоязычном Ютуб такие лекции редкость. Спасибо, Лена!

  • @ivanMoldovanu
    @ivanMoldovanu 2 роки тому +3

    Максимально полная информация, нигде такого не видел. Пришел после видео про event loop, где тоже все было рассказано очень подробно и хорошо. Был приятно удивлен настолько содержательным примерами. Спасибо, не останавливайтесь!

  • @cheesecheesson9842
    @cheesecheesson9842 2 роки тому +2

    Лучший разбор Event loop

  • @theoty-js
    @theoty-js 2 роки тому +4

    Прикольная девчуля :)

  • @aleksandrbarabash2221
    @aleksandrbarabash2221 Рік тому

    Спасибо, когда читал, не получалось понять, но после вашего видео все разложилось по полочкам.

  • @sergeyplotnikov4303
    @sergeyplotnikov4303 Рік тому

    Большое спасибо за объяснение!! Это объяснение сильно отличается от других на просторах интернета, стало намного понятнее.

  • @bjol_Dg
    @bjol_Dg Рік тому

    ёхо-хо ! почему я раньше не смотрел этот ролик ? Лена, спасибо за разжёвывание с примерами )

  • @helengriva3016
    @helengriva3016 2 роки тому

    Елена, Вы просто богиня понятных объяснений! Спасибо Вам, что берете такие актуальные и сложные темы и так подробно их разбираете! Очень приятно смотреть Ваши видео!

  • @3agoskin
    @3agoskin Рік тому

    Спасибо за урок! Все супер понятно, доступно и наглядно! Большое спасибо!

  • @ИринаЛанская-й3д
    @ИринаЛанская-й3д 2 роки тому +2

    Я просто в восторге, очень хорошо, что много примеров и за счет этого очень понятно!

  • @alexstepanchhuk683
    @alexstepanchhuk683 2 роки тому

    Просто супер - вместо 1000000 заумных объяснений просто взяли и провели за руку. Круто! Спасибо!

  • @sirlion1549
    @sirlion1549 Рік тому

    Это очень грамотная и наглядная подача материала, именно то, что я искал)

  • @user-paint-alexandra
    @user-paint-alexandra 2 роки тому

    Спасибо, теперь стало понятно, что такое макро и микротаски. Как- то смотрела видео-интервью фронтенд разработчика, так они там такую путаницу навели, что я подумала, будто микротаски - это все, что в стек идёт, а макротаски - в очередь.

  • @Mitya-b4p
    @Mitya-b4p 2 роки тому +5

    Thank you. Very cool explanation of such a difficult topic as Event Loop. Asynchronous code is an Achilles' heel for many people ♻

  • @ДмитрийХомиченко
    @ДмитрийХомиченко 2 роки тому

    Очень подробный и понятный разбор. Спасибо большое за проделанную работу!

  • @bogdanmyagkov2601
    @bogdanmyagkov2601 2 роки тому +2

    Это шикарный разбор!
    Спасибо вам огромное!

  • @АнатолийБелоусов-и7н

    Огромное спасибо за такой детальный разбор и интересные примеры с понятным объяснением!

  • @vadimniziev5489
    @vadimniziev5489 2 роки тому +1

    Ооо, спасибо!)))Недавно только у Вас видео по Event loop-у пересматривал)) а тут еще расширенная версия))

  • @nikolaimaslov94
    @nikolaimaslov94 2 роки тому +1

    Ну только сегодня же гуглил)) супер попадание, спасибо

  • @ОлегПетров-п4у
    @ОлегПетров-п4у 2 роки тому +1

    Очень важная тема. Спасибо! (Event loop)

  • @aleksandr-vyr
    @aleksandr-vyr 7 місяців тому

    Ваще Красотка 👍 как у тебя классно получается доносить инфу 😍

  • @Владимир.П-е9о
    @Владимир.П-е9о 2 роки тому +2

    Классная и очень важная тема. Спасибо!

  • @yury4707
    @yury4707 2 роки тому +2

    Лайк! Ты большая умничка..)

  • @LairaSxOaRnRaY
    @LairaSxOaRnRaY 2 роки тому

    Спасибо за видео! Очень полезные уроки, а сложные темы так легко и глубоко объясняются =)

  • @RedShucov
    @RedShucov 2 роки тому +10

    У Вас очень классные видео и подача.
    Всегда с интересом смотрю.
    Но задачи разбираемые Вами пока очень сложны для меня :)
    Надеюсь вскоре до них дорасту.

    • @webelart
      @webelart  2 роки тому +3

      Постепенно всё будет, если что задавайте вопросы. ❤️ Cпасибо большое за отзыв!

  • @gaengedev2583
    @gaengedev2583 5 місяців тому

    I love you 💞Thank you for the great lecture. I love you.

  • @aleksandrgurnak3911
    @aleksandrgurnak3911 2 роки тому +2

    это💣 Спасибо большое!)

  • @ivanMoldovanu
    @ivanMoldovanu 2 роки тому

    подписался сразу после этого видео

  • @СергейМустафаев-и2к

    спасибо за видео даже не глядя лайк, всё видео у тебя супер!

  • @ИванИвпнов-п6ь
    @ИванИвпнов-п6ь 2 роки тому +1

    большое спасибо! очень хорошо объясняете👍 Сколько лет живу, а не знал такую фичу про setImmideite 😅
    33:00
    вывод: start bar foo zoo foo-2 baz
    node -v: v16.9
    в 16 ноде process.nextTick выводится строго после промисов)
    Видимо не стоит на него полагаться т.к. поведение от версии ноды зависит

    • @webelart
      @webelart  2 роки тому

      У меня установлена v16.12 и собственно урок я с ней записывала. Проверила также 16.9 nextTick идёт первым. Есть ли у вас ссылка на документацию в подтверждение ваших слов или дайте ссылку на ваш код, что запускали?

    • @ИванИвпнов-п6ь
      @ИванИвпнов-п6ь 2 роки тому +1

      если быть точнее, версия ноды у меня: 16.9.1
      Ссылку не получается дать, уже 3й раз сообщение ютуб удаляет. Зайдите на stackoverflow question 67949576. У человека Win10 node v14.17.0 и nextTick запускается после промисов. Все его примеры у меня так же ведут себя (Win11) Видимо это баг винды)

    • @MD-bm5jg
      @MD-bm5jg Рік тому +1

      @@ИванИвпнов-п6ь У меня на Windows 11 та же ситуация, выводит start bar foo zoo foo2 baz. Версия ноды v18.12.1 Видимо это особенность win11

    • @MD-bm5jg
      @MD-bm5jg Рік тому +1

      А нет, создала новый чистый проект и перепроверила там, выводит как на видео. То есть дело не в Windows, с чем-то другим такое поведение связано было)

    • @MD-bm5jg
      @MD-bm5jg Рік тому +2

      Интересно, что если создать package.json и поставить "type": "module", то снова будет выводится start bar foo zoo foo2 baz. Видимо в первый раз в этом было дело

  • @ВиталийУряшник-б9ш
    @ВиталийУряшник-б9ш 2 роки тому +2

    в eventLoop сначала берутся callbacks из таймаута, после callbacks из операций i/o, после берутся callbacks из setImmediate, потому при чтении из файловой системы в cb сначала отработает immediate, а после таймаут

  • @stanislavdmitriev5917
    @stanislavdmitriev5917 2 роки тому

    Вау! Спасибо большое! Это лучшее, что я видел по данной тематике!

  • @YuriiKratser
    @YuriiKratser 2 роки тому

    Какая вы молодец!

  • @Anonym-li8eb
    @Anonym-li8eb Рік тому

    Огромное спасибо :)

  • @oleg_shulga
    @oleg_shulga 2 роки тому

    Очень хорошая подача и задачи. Однозначно лайк.

  • @ДмитрийКолышницын-с2л

    Больше JavaScripta !!!

  • @vitalizaneuski1079
    @vitalizaneuski1079 Рік тому +2

    В первом примере из секции закрепляем знания не совсем так получается, там callback на I/O не всегда отрабатывает перед setTimeout callback-ом, так что вывод идет 50/50 и слово "timer" может быть выведено раньше, чем "text-open". Скорее всего это зависит от того, на какой стадии event loop мы находимся, так как у timeouts & i/o callbacks в event loop разные стадии.

  • @artemivanov5013
    @artemivanov5013 2 роки тому

    Супер урок!!Спасибо!!

  • @yuryitikhonoff9631
    @yuryitikhonoff9631 2 роки тому

    Thanks for a such clear and detailed explanation. Well done.

  • @alexalwinner8890
    @alexalwinner8890 2 роки тому

    Как всегда интересно и познавательно. Спасибо!

  • @alianmanpi35
    @alianmanpi35 2 місяці тому

    спасибо большое, отличное видео

    • @webelart
      @webelart  2 місяці тому

      @@alianmanpi35 ❤️

  • @biLLie_wiLLie
    @biLLie_wiLLie 2 роки тому +7

    19:30 отличный момент упомянула. Мне на собеседовании попался пример обычного синхронного кода в промисе и я завис. Просто никогда не видел такого

    • @webelart
      @webelart  2 роки тому +3

      У меня такая же ситуация была однажды на собеседовании :DD

  • @cfyz7
    @cfyz7 Рік тому

    Богиня!

  • @ilaymorozoff4113
    @ilaymorozoff4113 2 роки тому

    Топ контент, благодарю))

  • @georgemazur7788
    @georgemazur7788 2 роки тому

    Спасибо! Хорошее видео и подача материала!
    Успехов :)

    • @webelart
      @webelart  2 роки тому

      ❤️❤️❤️

  • @kottofey1
    @kottofey1 3 місяці тому

    Крутой видос! Спаисбо! А насколько применима к браузерной части моменты с начала до конца главы с микротасками?

    • @webelart
      @webelart  3 місяці тому

      @@kottofey1 применима. Единственное там не все методы. Только часть методов не доступно. Все что есть в браузере работает также.

  • @mishakirichenko7455
    @mishakirichenko7455 2 роки тому

    Ребята, те кто только начал изучать JS, не советую смотреть вам это сейчас. Лучше слушать когда уже ты Junior + минимум. А так Елена молодец. Очень важная тема, которую максимально детально разжевала. Елена выходите за меня замуж! 😀

  • @ruslanstupak7625
    @ruslanstupak7625 2 роки тому +1

    Большое спасибо за такую доступную подачу материала, это очень важно объяснять так, чтобы было понятно абсолютно каждому. Подскажите еще пожалуйста, а на каких языках программирования Вам приходится писать в вашей компании, ну или какие фреймворки используете?

    • @webelart
      @webelart  2 роки тому +2

      Основной язык JavaScript, а вместе с ним куча всего preact, graphql, zustand, nodejs, koa, typescript, theme-ui, sanity, fastly, CI и т.д.

    • @ruslanstupak7625
      @ruslanstupak7625 2 роки тому

      @@webelart понял, спасибо за ответ)

  • @deniskorablev2648
    @deniskorablev2648 2 роки тому +3

    Лен, интересно было бы послушать про чистую архитектуру дядюшки боба, с реализацией для ноды, а то что-то так и не могу подробно понять что там да как

    • @webelart
      @webelart  2 роки тому +1

      О, интересно, не читала эту книгу. Но читала две другие идеальный программист и чистый код, помню осталась очень довольна. Надо будет придержать в уме про чистую архитектуру!

    • @deniskorablev2648
      @deniskorablev2648 2 роки тому +1

      @@webelart смотрел вот это видео, но местами не все понял, ua-cam.com/video/CnailTcJV_U/v-deo.html

  • @МишаБобров-и1з
    @МишаБобров-и1з 2 роки тому +1

    Ого, спасибо за новый видос!
    Но я еще на промисах сижу🥴

    • @webelart
      @webelart  2 роки тому +2

      О, промисы - это конфетка. Разбирайтесь, держу с вами кулачки на понимание! ❤️

  • @InfoBlognow
    @InfoBlognow 7 місяців тому

    А как обрабатывается код до call stack, кода создаешь переменные даешь им значения, примитивные и реферальные типа, где они хранятся и так далее?

  • @АлександрМелянюк-ц9ю

    Спасибо!

  • @svet0v
    @svet0v 8 місяців тому

    Так, а что именно относится к мироктаскам, макротаскам? не совсем понял. И почему setInterval относится к api, а не к макротаскам? И для чего конкретно нужен nextTick?

  • @АлександрГрадинар-ф7б

    Спасибо, круто объяснила очень. Не очень понятно почему рекурсия засорила стек, а цикл нет.
    Я правильно понимаю, что в случае цикла консоль после выполнения тут же очищалась из стека, и по этому в стеке всегда было не больше 1й записи.
    А в случае с рукурсией в стек записывалась f(), затем консоль которая после выполнения сразу очищалась, и после этого снова f() и так пока стек не засорится полностью, да?

    • @webelart
      @webelart  2 роки тому +2

      Стек предназначен для функций, по факту цикл это не функция. Это некоторый код внутри функции, он может выполняться долго и тем самым функция в стеке будет просто подольше находиться. console.log - это функция, поэтому кладется в стек, т.к. внутри нее нет других функций, то она сразу оттуда уходит. Если бы были внутри функции они бы выше положились. Т.е. базовая функция не может завершить свое выполнение до тех пор пока весь код внутри нее не отработает и все функции внутри нее не завершатся тоже.

  • @bolovy6093
    @bolovy6093 2 роки тому

    Привет, а почему ты не пользуешься autosuggestion в VSCode?

    • @webelart
      @webelart  2 роки тому

      Иногда использую, но в основном просто набираю, так привычнее :)

    • @bolovy6093
      @bolovy6093 2 роки тому

      @@webelart ну с ними код же быстрее пишется, необычно писать код без подсказок))

  • @Den4eg37
    @Den4eg37 2 роки тому

    Круто

  • @shwarcz86
    @shwarcz86 2 роки тому

    Здравствуйте Елена. Сделайте пожалуйста урок по API Яндекс.Карт.

  • @HereticAnthem
    @HereticAnthem 2 роки тому

    комментарий для продвижения этого видео!

  • @illiakyselov6913
    @illiakyselov6913 2 роки тому

    як раз шукав матеріал по івент лупу, дякую)

  • @luckytima2315
    @luckytima2315 2 роки тому

    Простите за глупый вопрос , разбор event loop здесь и в вашем другом видео это разные вещи или одно и тоже ?

    • @webelart
      @webelart  2 роки тому +1

      Вопрос отличный! ;) В прошлом видео не было разбора macro и micro задач, т.е. в целом деления очередей, была одна очередь для простоты + там был упор на браузер, здесь nodejs (появляются доп. методы такие как process.nextTick, setImmediate), но в тоже время если без них то в браузере похожая логика (нет очереди next tick) и я тут тоже про него упоминала (про браузер).

    • @luckytima2315
      @luckytima2315 2 роки тому

      @@webelart Спасибо за ответ, обожаю ваши видео

    • @veyelutd1176
      @veyelutd1176 2 роки тому

      Спасибо за классные видео!!! Хотелось спросить, где вы изучали «внутренности» джса и принципы работы его движка?

  • @theoty-js
    @theoty-js 2 роки тому

    Елена , в шахматы играешь?

    • @webelart
      @webelart  2 роки тому +2

      Не, в шахматы нет. Но я в шашки могу! 😁

    • @theoty-js
      @theoty-js 2 роки тому

      @@webelart могу научить, ты нас учишь и я готов добром ответить :) увлекательная игра, не оторваться👍..в шашках тоже думать надо😉

    • @webelart
      @webelart  2 роки тому

      @@theoty-js Ого! В шахматы пока не планировала учиться, однако возьму на заметку, что если что могу вам написать. ❤️ А так очень мечтаю научиться нормально на пианино играть, вот это прямо моя мечта. :)))

    • @webelart
      @webelart  2 роки тому +1

      @@theoty-js Спасибо большое за предложение!!! 🤗

    • @theoty-js
      @theoty-js 2 роки тому

      @@webelart с приятным людям рад идти навстречу 😉🤗 шахматы это интересная головоломка, для разработчиков самое 😊 тактика, стратегия, просчёт... Главное вникнуть, а там пошло - поехало)

  • @sveta7201
    @sveta7201 9 місяців тому

  • @KirA-bz9tz
    @KirA-bz9tz 2 роки тому

    Я пока только скачал курс "как стать программистом JS за месяц" так что мне все сложно и непонятно. Через месяц загляну, ахахаххаа

  • @АлександрБуханенко-э1э

    Интересно было посмотреть... Блондинка. vs node js

  • @СергейИахин
    @СергейИахин 2 роки тому +1

    Привет, Елена.

    • @webelart
      @webelart  2 роки тому +1

      Привет, Сергей! 🙃

  • @annaduhovny7539
    @annaduhovny7539 2 роки тому

    Ochen' horoshie primeri, no obyasnenie tolko s pomosch'y console - kone4no ne mnogim bydet ponyatno.
    Mojno bili bi sdelat' naprimer 3 kolonki - macro | micro | main ---> i zasovivat' calls tyda.
    (nextTick eto to je microtask to je - mojno v printsepi ne razdelyat' ego na "nextTick - Queue", no on pobejdaet Promise - t k y nego higher priority)
    Voobs4e o4en priyatno videt' takoi content od devyshki - girls power !!!

  • @stanimir5228
    @stanimir5228 Рік тому

    Ноде)))

  • @wolfern5449
    @wolfern5449 11 місяців тому

    Я не уверен, но разве устройство event loop в nodejs и в браузере это не разные вещи 😮

    • @webelart
      @webelart  11 місяців тому

      Думаете по разному. В браузере когда запускается JS тоже есть движок для запуска и там используется и они вроде как одинаковые с nodejs. Но если есть доп информация делитесь. В любом случае и в браузере и в nodejs event loop есть.

    • @qlmanlp
      @qlmanlp 7 місяців тому

      @@webelart Они похожи по принципу, но отличаются. В браузере там макротаски и микротаски, в Node.js там вместо макротасок идёт последовательность фаз

  • @николайкраснов-р3о
    @николайкраснов-р3о 2 роки тому +1

    Привет)

    • @webelart
      @webelart  2 роки тому +2

      Привет, привет! :)

  • @serdotsenko
    @serdotsenko 2 роки тому

    привет! спрасибо за труд и работу, но для этой темы нужно больше визуализации, что когда и куда попадает, т.к. на собеседованиях эту тему спрашивают очень глубоко в детелях. вот пример хорошей визуализации ua-cam.com/video/vIZs5tH-HGQ/v-deo.html

    • @webelart
      @webelart  2 роки тому

      У меня было видео с визуализацией ua-cam.com/video/3naT39judvQ/v-deo.html. И даже там я более подробно рассказываю про устройство js heap, web api и то, как работает event loop. По тому что вы скинули, человек не покрыл огромное количество деталей и по факту разобрал только setTimeout. Что касается текущего видео, то оно покрывает event loop очень подробно со всеми очередями и кучей особенностей, чего в скинутом вами видео даже близко нет.

    • @serdotsenko
      @serdotsenko 2 роки тому

      @@webelart понял. спасибо! недавно стал Вашим подписчиком. всё посмотрю/изучу. ещё раз спасибо за Вашу работу. продолжайте пж-та

    • @webelart
      @webelart  2 роки тому

      @@serdotsenko ❤️😘

  • @kontantinnikolaev6574
    @kontantinnikolaev6574 Рік тому

    НОДИJS

  • @erjigit17
    @erjigit17 2 роки тому

    НодЕ ухотре режит(

  • @галичанскийсифилис-п4л

    Привет.А зачем ты так подробно рассказываешь про stack ?Начинающие всё равно ничего не поймут.Стэк нужно изучать в ассемблере чтобы понять что к чему

    • @webelart
      @webelart  2 роки тому

      Привет! Начинаю со стека, чтобы изложение было последовательным.
      Изучать стек можно по разному: можно на примерах и на словах, можно на тарелках, можно консоль Google Chrome открыть и показать как происходит складывание, а ещё можно с помощью одного моего видео ua-cam.com/video/i5PfPoX88wI/v-deo.html, очень крутое кстати. В общем, как удобно и понятно, так и нужно его изучать. ❤️

  • @alerya100
    @alerya100 2 роки тому

    пора перехолдить на английский!