JavaScript Visualized - Event Loop, Web APIs, (Micro)task Queue

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 มิ.ย. 2024
  • Learn how the browser event loop, task queue, microtask queue, and Web APIs work together to enable non-blocking, asynchronous JavaScript.
    - / lydiahallie
    - buymeacoffee.com/lydiahallie
    - / lydiahallie
    - / lydia-hallie
    - / theavocoder
    Timestamps:
    0:00 Intro
    0:32 Call Stack
    1:18 Single-threaded Problem
    2:01 Web APIs
    2:47 Callback-based APIs
    4:04 Task Queue
    4:39 setTimeout
    6:22 Microtask Queue
    8:40 Promisifying Callbacks
    8:57 Challenge
    10:52 Recap
    11:58 Outro

ความคิดเห็น • 1K

  • @theavocoder
    @theavocoder  2 หลายเดือนก่อน +168

    Btw if you're in a hurry you can just fast-forward to 10:52 haha! I use Apple Keynote for everything.
    💡Just a heads up: I explain these concepts in a way that personally helped me conceptualize the processing order.
    E.g. the event loop doesn't directly "prioritize" the microtask queue, rather they're just processed and completed before the event loop continues to the next task. One iteration of the event loop is executing a single task, processing all available microtasks, and then updating the rendering of the page if needed (that's not covered in this video, might be another video, things like requestAnimationFrame). However, within your code, you'll get the sense that the microtasks are "prioritized" over the task queue-based parts.

    • @sadatarefinrafat
      @sadatarefinrafat 2 หลายเดือนก่อน +4

      Gotta love you for respecting our time.

    • @swaminathbera6407
      @swaminathbera6407 2 หลายเดือนก่อน

      From where did you learn?

    • @sourabhjana1278
      @sourabhjana1278 หลายเดือนก่อน +2

      Can you please extend this more to explain NodeJS runtime 🙏

    • @inowatchvideos
      @inowatchvideos หลายเดือนก่อน +2

      Those slides are wonderful, it’s still a mystery to me how they are so good. Skills.

    • @joshuafontiveros7877
      @joshuafontiveros7877 หลายเดือนก่อน

      Thank you for doing this. I love the visuals you made here!

  • @bilalarain4632
    @bilalarain4632 หลายเดือนก่อน +301

    i think thousands of senior developers finally understood it today.

    • @DasBeatz
      @DasBeatz หลายเดือนก่อน

      🤯

    • @scryptum
      @scryptum หลายเดือนก่อน +3

      fake senior developers. No theory , not a real dev!

    • @KAIDO-mi1tr
      @KAIDO-mi1tr หลายเดือนก่อน +3

      Knowing the todays reality, you wanted to say "junior" developers ? : )

    • @bilalarain4632
      @bilalarain4632 หลายเดือนก่อน

      @@KAIDO-mi1tr haha

    • @yangliu2713
      @yangliu2713 22 วันที่ผ่านมา

      now adays, senior and junior have similar salary, so whats the difference

  • @carltongordon
    @carltongordon หลายเดือนก่อน +550

    Where has this channel been all my life?

    • @pawanpulami6091
      @pawanpulami6091 หลายเดือนก่อน +2

      Exactly I was thinking the same 😂

    • @peacemurder3778
      @peacemurder3778 หลายเดือนก่อน +8

      In the future obviously. 😂

    • @riccardoguitar
      @riccardoguitar หลายเดือนก่อน +9

      She already done a longer vid for freeCodeCamp 2 years ago and she's on FrontedMasters as Teacher
      th-cam.com/video/xckH5s3UuX4/w-d-xo.html

    • @theblackelephant
      @theblackelephant หลายเดือนก่อน +1

      Same here❤❤❤❤❤

    • @pubudusenarathne
      @pubudusenarathne หลายเดือนก่อน

      Exactly!!

  • @ryandawson1220
    @ryandawson1220 หลายเดือนก่อน +252

    I have been programming for 15 years and I don't think I have seen information presented so succinctly in that span. Thank you so much for this.

    • @fadichamieh
      @fadichamieh หลายเดือนก่อน

      100%

    • @prinzadamz
      @prinzadamz 23 วันที่ผ่านมา

      Absolutely 🤟

  • @florianwicher
    @florianwicher 22 วันที่ผ่านมา +25

    This video should receive the Oscar for best animation

  • @jamesallen74
    @jamesallen74 หลายเดือนก่อน +276

    I've been in software development for 16 years. This video is outstanding. Probably one of the best I've ever seen for JavaScript.
    Lydia, I want to encourage you to keep doing these if you desire. This visual, animated approach combined with your ability to teach is a home run.
    Thank you so much for doing this. I am now subscribed.

    • @draco_2727
      @draco_2727 หลายเดือนก่อน

      9 years ago was this video... her video seems a rip-off
      th-cam.com/video/8aGhZQkoFbQ/w-d-xo.html&ab_channel=JSConf

    • @TheNomadsTimeCapsule
      @TheNomadsTimeCapsule หลายเดือนก่อน +6

      I can only agree. Especially for this topic, it was hard to find such an amazing explanation. You really helped me out. Thank you,

    • @modolief
      @modolief หลายเดือนก่อน +1

      ditto

  • @Ainigma
    @Ainigma หลายเดือนก่อน +65

    @Lydia Hallie Are you kidding? This level of detail, every animation, every transition, the highlighting (and temporarily hiding unimportant components) is just so good.
    Very well done, love it.

  • @ramlaaal
    @ramlaaal หลายเดือนก่อน +37

    wow the visualization is awesome. The colours, gradients, design and animation. Its perfect down to the tiny details.

  • @amulpatel
    @amulpatel หลายเดือนก่อน +27

    it is very very rare to have material like this presented in such a visual and engaging way .. animation is hardly ever used in js tutorials. Visualization of these concepts is so important for the visual learners out there. THANK YOU.
    instantly subscribed.

  • @timurdinov7452
    @timurdinov7452 22 วันที่ผ่านมา +18

    If anyone had a question in the Challenge section as to why console.log(1) didn't execute immediately, even though it was in the Microtask Queue and the Call Stack was empty, read on.
    All the code on the left is a script and can be represented as an anonymous function. At the very beginning of the "Challenge" section in the Call Stack, there should have been an "anonymous" block. This block starts executing (the script is being executed), and then everything is the same as in the video, except that the "anonymous" block is always at the bottom of the Call Stack. The "anonymous" block disappears from the Call Stack after console.log(5) is executed, because it is the last operation in the script.
    And so when the "anonymous" block disappears from the Call Stack, Microtask Queue and Task Queue processing starts (10:04).
    Great video!

    • @joshpike
      @joshpike 20 วันที่ผ่านมา +2

      Thank you. Absolutely wondered this.

    • @akashrajum3319
      @akashrajum3319 12 วันที่ผ่านมา

      Yep, the anonymous block is referred to as Global Execution Context

  • @ahmedmaaz4390
    @ahmedmaaz4390 หลายเดือนก่อน +5

    Okay ma'am, I noticed you only have 3 videos on your channel. Don't stop until you have at least a 20 video playlist on your channel. This is gold.

  • @vasili551
    @vasili551 3 วันที่ผ่านมา

    can not be simpler and more elegant way of showing the concepts, thanks for the lessons.

  • @scaly86
    @scaly86 หลายเดือนก่อน +5

    The sign of mastery is being able to simply explain a complicated concept. This preso is a thing of beauty... and mastery!

  • @kaipang-whitsett2379
    @kaipang-whitsett2379 หลายเดือนก่อน +15

    This is the type of visualization that coding vids need

    • @AndrewTSq
      @AndrewTSq หลายเดือนก่อน

      it reminds me of debuggers we used to have in the late 80ies

  • @slevinstayshere
    @slevinstayshere หลายเดือนก่อน +6

    I'm a web programmer for 15+ years now and I'm stunned how well made this explanation is. really Amazing! Subscribed right away!

  • @TC14
    @TC14 หลายเดือนก่อน +23

    Top tier presentation, this is easily one of the best visualizations I've seen on TH-cam. You clearly have excellent teaching and communication skills. I know you are focusing your content on JavaScript but if you were ever interested in giving us an overview of some of your presentation techniques in Apple Keynote, I think many viewers could greatly benefit from it.
    Keep up the awesome content! I can't wait to see what videos you have in store for this channel.

  • @huycaoviet8367
    @huycaoviet8367 2 หลายเดือนก่อน +66

    I finally understand Event Loop after 1 year writing JS.

    • @ericjeker
      @ericjeker หลายเดือนก่อน +18

      Don't worry, many devs still don't understand it after 10 years of writing JS.

    • @jonniem
      @jonniem หลายเดือนก่อน +4

      I thought I did… until today😅

    • @lamhung4899
      @lamhung4899 หลายเดือนก่อน +2

      No you do not 😂

    • @chess4964
      @chess4964 หลายเดือนก่อน +1

      huh do you need to understand it? coding js/ts for 3 years now

    • @dbzfan2487
      @dbzfan2487 25 วันที่ผ่านมา

      Then you're a shit developer tbh

  • @CrusaderMen
    @CrusaderMen 2 หลายเดือนก่อน +23

    Thank you.
    This is the best explanation I've seen.

  • @HamzaKhan-rs2yo
    @HamzaKhan-rs2yo หลายเดือนก่อน +5

    The visualization is outstanding, providing one of the clearest and most informative explanations I've come across.

  • @Isaac-hd6vs
    @Isaac-hd6vs หลายเดือนก่อน +4

    Hands down, the best event loop explanation ever!

  • @MagnumCarta
    @MagnumCarta หลายเดือนก่อน +8

    10 / 10 quality. The explanation of the different queues helped clear up confusion I had in the background of how asynchronous tasks work underneath the hood in the context of Javascript. Even with a bachelor's degree in computer science it was still a pretty head scratching concept thinking "how does the engine know what is I/O blocking and what is not? How does it handle that?". I would always hear "oh its just on the event loop! Its just on the event loop!" but I'd be like "all these diagrams suggest the blocking and non-blocking are on the same queue". I had no idea about the microtask queue and that is where fetch's then calls are appended to.
    Also I can't help but look at the word "event loop" and just think of Froot Loops.

  • @leepaulison4928
    @leepaulison4928 หลายเดือนก่อน +4

    Lydia, your teaching style is the best I've seen. Please continue to educate us.

  • @forkanshanto2228
    @forkanshanto2228 หลายเดือนก่อน +3

    This video brilliantly illustrates the intricate workings of JavaScript's Event Loop, Web APIs, and (Micro)task Queue. The visuals make complex concepts crystal clear, making it easier to grasp how JavaScript manages asynchronous tasks behind the scenes. Kudos to the creators.

  • @diogosoares1309
    @diogosoares1309 5 วันที่ผ่านมา

    Finally on TH-cam!! Welcome Lydia, it is a privilege to have your content here for free 🙌

  • @phantom7132
    @phantom7132 6 วันที่ผ่านมา

    The best visualisation of the JS runtime I've ever seen! Respect Lydia!

  • @jackwright517
    @jackwright517 หลายเดือนก่อน +3

    Whoaaaa... Ive been writing js for years and this is hands down the BEST event loop video resource ive ever seen. My god its presented so simply! 💯

  • @tomjerry0796
    @tomjerry0796 20 วันที่ผ่านมา +1

    12 min just recalled my last 2 years ❤🎉

  • @jordachmakaya493
    @jordachmakaya493 7 วันที่ผ่านมา

    Ridiculously simple when you explain it. You just got new subscriber !

  • @mattpocockuk
    @mattpocockuk 2 หลายเดือนก่อน +14

    Fucking hell Lydia, this is incredible

    • @theavocoder
      @theavocoder  2 หลายเดือนก่อน +1

      Ah thank you Matt! 🙏

  • @PostMeridianLyf
    @PostMeridianLyf หลายเดือนก่อน +13

    Are you Ai? This seems too perfect

    • @The_Wookiee
      @The_Wookiee หลายเดือนก่อน +1

      *too (This has been your ai powered nostalgia post troll, have a nice day.)

  • @paulopontovaz
    @paulopontovaz หลายเดือนก่อน +1

    Whoa, I'm so happy that this channel exists. The visuals help SO MUCH with understanding all the JS flow!

  • @SaiPrakash16
    @SaiPrakash16 หลายเดือนก่อน +2

    By far the most simple yet effective way to show event loop . Really enjoyed it

  • @abdulrahmantahir3033
    @abdulrahmantahir3033 2 หลายเดือนก่อน +8

    Mam can you make a video on how exactly the react works under the hood ?

  • @rjwhite4424
    @rjwhite4424 26 วันที่ผ่านมา +1

    this single video has taught me more about js under the hood then months of watching other videos

  • @mohitkarki7185
    @mohitkarki7185 หลายเดือนก่อน

    I think this is the best event loop explanation in the internet. You have described each and every point in such detailed way, making this topic feel so simple to understand. The animation is also made with such detail, making life easier.

  • @arthurvmdantas
    @arthurvmdantas 25 วันที่ผ่านมา

    This presentation is crazy good. I can only imagine the amount of work put into it. Congratulations.

  • @viatrixhd
    @viatrixhd หลายเดือนก่อน

    I have been programming for some years now, as a visual learner this video was awesome. Perfectly visualized and straight to the point! Keep up the great work

  • @DesignsbyBlanc
    @DesignsbyBlanc หลายเดือนก่อน

    Never thought I grab some popcorn🍿 to learn about the inner workings of JavaScript, yet here I am. Awesome work!

  • @marcoscabrinirianidosreis6655
    @marcoscabrinirianidosreis6655 17 วันที่ผ่านมา

    This channel is a gold mine, thanks for sharing it, this is amazing

  • @GUYX10
    @GUYX10 หลายเดือนก่อน +1

    One of the best explainer videos I've ever seen, thank you! Subbed

  • @tylerwalton7659
    @tylerwalton7659 23 วันที่ผ่านมา

    This was absolutely amazing!! The way you broke down callbacks from methods, visuals to see what’s happening. Best of all a challenge to really help drive the subject home, best way to improve learning. I can’t wait for more to come from you and THANK YOU!

  • @rogue.ganker
    @rogue.ganker 18 วันที่ผ่านมา

    Been doing javascript for over a decade, and this was the coolest explanation I've ever seen!

  • @Mossy45
    @Mossy45 4 วันที่ผ่านมา

    This has saved my sanity on something I thought I could never understand.

  • @hellcat8886
    @hellcat8886 หลายเดือนก่อน +2

    Pls, don't stop making videos like this, it's really enlightening!❤

  • @swayze_0
    @swayze_0 15 วันที่ผ่านมา

    Amazingly simple explaniation and satisfying graphics! Really thankful for this video. Keep it up!

  • @itsjmendez
    @itsjmendez 24 วันที่ผ่านมา

    Well done! the best way to understand these concepts is with a visual explanation. Keep it up! 🔥

  • @kushyzee
    @kushyzee 8 วันที่ผ่านมา

    You just got yourself a new subscriber! I actually watched a video about all these a few days ago and I kinda understood how it all works but this video is the icing on the cake, I now perfectly understand how it all works and it's all thanks to the beautiful visualizations you used and your straightforward explanation. This video is a goldmine ✅

  • @erick2051
    @erick2051 หลายเดือนก่อน

    Lydia, your explanation is by far the clearest i've seen out there. I'd love to watch something similar for async-await!

  • @souravmitra6370
    @souravmitra6370 17 วันที่ผ่านมา

    Best possible explanation out there for understanding event loop concept in JS. Thanks for the video.

  • @simplehacker_
    @simplehacker_ หลายเดือนก่อน

    These videos are extremely well presented!

  • @chensu4732
    @chensu4732 12 วันที่ผ่านมา

    This is excellent work, Lydia! Your visualization of the event loop definitely can help millions of JS engineers understand it better. Huge impact, congratulations!

  • @EbrahimTahernejad
    @EbrahimTahernejad หลายเดือนก่อน

    I already knew all these but still watched it because of the quality of your presentation.
    Great work.
    Keep doing what you're doing.

  • @ajassharafudeen
    @ajassharafudeen 8 วันที่ผ่านมา

    4 months ago, I learned event loop from your dev.to post titled JavaScript Visualized: Event Loop - which is the best visualised minimalistic explanation I have come across, and then to refresh it, I watched this video you recently posted.
    Thank you Lydia Hallie.

  • @flnnx
    @flnnx 2 หลายเดือนก่อน

    I'm preparing for an interview and this helps a lot. The promises video and this one are simply incredible. Love the series.

  • @DontFollowZim
    @DontFollowZim หลายเดือนก่อน

    I've already learned all this, but this is the probably the clearest, best, and most beautiful explanation I've seen. I need to share this...

  • @nelsonelijah5327
    @nelsonelijah5327 หลายเดือนก่อน

    This is phenomenal. I just started learning javascript coming from an Embedded systems background and never understood how the execution of commands happened. This cleared a year of misconceptions for me and unprecedented years of troubles. Wow! Some people are just goated!

  • @RohitDubeyJLSARP
    @RohitDubeyJLSARP 23 วันที่ผ่านมา

    One of the best video ever that explains concepts this clear. 🙌

  • @eleazerugwu100
    @eleazerugwu100 วันที่ผ่านมา

    You are an amazing tutor. The visualization is incredible.

  • @thepassionatecoder5404
    @thepassionatecoder5404 27 วันที่ผ่านมา

    God bless you Lydia. Hands down the most important and enlightening JavaScript tutorial on the TH-cam that every serious JavaScript developer needs. God

  • @jjysoserious
    @jjysoserious หลายเดือนก่อน

    Best video ive seen on this subject. The visuals help a lot!

  • @geoffreymoluba7448
    @geoffreymoluba7448 หลายเดือนก่อน +1

    It's so well explained that after 1minutes 27 seconds of watching I had to subscribe. This is pure quality content

  • @gabriellinassi3382
    @gabriellinassi3382 2 หลายเดือนก่อน

    Thank you, Lydia. You explain very well. After 3 years writing JS, I'm finally taking the time to go back to the basics and learn the fundamentals and I'm learning a lot

  • @SanketBhat7
    @SanketBhat7 หลายเดือนก่อน

    So far the best explanation of how Java script works. Thanks

  • @TheDogn
    @TheDogn หลายเดือนก่อน

    I've never seen this information provided with such uncompromising clarity. Subbed. This is the first video I've seen of yours, but if the rest are anything like this one, you're worth it. Amazing.

  • @Software..Engineer
    @Software..Engineer หลายเดือนก่อน +1

    one of the best video on javascript visulization.
    thank you lydia Hallie.
    Make more videos like this.

  • @aGoodOmen
    @aGoodOmen หลายเดือนก่อน

    I am in awe of the explanation and the masterful use of Keynote. Great stuff. Congrats!

  • @suenkaiching1580
    @suenkaiching1580 หลายเดือนก่อน

    Thank you! This is absolutely the best explanation I have ever seen. 12 mins of video cleared out all the my confusions I had in event loop from day 1!!

  • @sebas_xs
    @sebas_xs 2 หลายเดือนก่อน +1

    Your explanations are crystal clear and your slides are absolutely stunning! You have a real talent for breaking down complex topics in such an engaging way. Keep up the fantastic work, you're making learning an absolute pleasure!

  • @me_rinta
    @me_rinta หลายเดือนก่อน

    Best event look explanation video I’ve seen
    Awesome work! ❤

  • @warta312
    @warta312 หลายเดือนก่อน

    Hope you keep doing this great job. This is one of the best explanations I've seen in the last few months.

  • @vikramtatke5930
    @vikramtatke5930 หลายเดือนก่อน

    This is absolute gold! So glad TH-cam recommended this video. Lydia, it is amazing to see the effort you've put into creating these slides.
    I subscribed in the first 60 seconds. This is how the universities should have taught us! Kudos! Looking forward to your next one!

  • @meetfilipe_
    @meetfilipe_ หลายเดือนก่อน

    I can't imagine the amount of work you put in to explain something so complex put so simply

  • @paulobelucci
    @paulobelucci 18 วันที่ผ่านมา

    Amazing. I'm a visual learner, and it was a pleasure to watch and learn. Thank you for the content. 👏🏻👏🏻👏🏻

  • @WebQrious
    @WebQrious 23 วันที่ผ่านมา

    this is the best ever explanation i've ever seen... Thank you for this amazing video

  • @teamgartz-motorsports6881
    @teamgartz-motorsports6881 10 วันที่ผ่านมา

    Your presentation is absolute the best event loop explanation I ever saw. Thank you and congratulations in doing such amazing work to help other people.

  • @dopetag
    @dopetag หลายเดือนก่อน

    The best explanation and visualisation! Kudos!
    Instant subscription!

  • @noozytechz
    @noozytechz หลายเดือนก่อน

    What you've done is mind-blowing, ma'am.

  • @ylaguardia
    @ylaguardia หลายเดือนก่อน

    Congrats on this video. I've read a lot about this topic... articles, tweets, book passages. I've seen videos and talks about this. None of them were so thorough, clear and enlightening as this one. Keep up with the outstanding work!

  • @lceda
    @lceda 10 วันที่ผ่านมา

    That's a really good way to explain something which can be complex trying to understand it without the visualization! Thanks alot for sharing this gold content!

  • @zackanderson6084
    @zackanderson6084 หลายเดือนก่อน

    Amazing explanations, and I love the reiterative approach of the ideas and concepts!!

  • @marianopainefil3537
    @marianopainefil3537 หลายเดือนก่อน

    Este video es INCREIBLE. Completamente deberia ser un MUST en cualquier capacitación/universidad. Millones de gracias!

  • @IceBreakerGamer
    @IceBreakerGamer 29 วันที่ผ่านมา

    This channel is a gold mine... literally.. please post more.

  • @jtnovellis
    @jtnovellis 29 วันที่ผ่านมา

    This is the best video that I have watched about how works the event loop

  • @Abdullahalmamun-bf5tc
    @Abdullahalmamun-bf5tc หลายเดือนก่อน

    It is one of the best explanation that i ever had

  • @ShredNekM80
    @ShredNekM80 หลายเดือนก่อน

    The presentation and clarity of this information is excellent! Thank you for making this video. It made understanding the Event Loop so much easier!

  • @Mar444_
    @Mar444_ 4 วันที่ผ่านมา

    This is brilliant! Such clarity💎😄Thank You!

  • @_nsikak
    @_nsikak 20 วันที่ผ่านมา

    You made it easy for me to understand the sequence of execution between the microtask queue and task queue. Thank you!

  • @ryanmalesic8385
    @ryanmalesic8385 หลายเดือนก่อน

    This is the best video on this topic I’ve ever seen. And I’ve seen many

  • @hoangduy500
    @hoangduy500 หลายเดือนก่อน

    This channel is a precious gem! Thank you, Lydia. I know it takes a lot of effort, but I hope you could make more videos with excellent visual explanations like this.

  • @hosampb5593
    @hosampb5593 12 วันที่ผ่านมา

    I've just came across your channel.
    Very concise, informative and pleasantly visualised.
    Also interesting topic!

  • @AntonioLettieri
    @AntonioLettieri หลายเดือนก่อน

    Best example of a task queue I have seen in a very long time.

  • @davidpaez_co
    @davidpaez_co หลายเดือนก่อน

    This video deserves 10M views. Incredible work Lydia!

  • @ilonakhomenko3797
    @ilonakhomenko3797 หลายเดือนก่อน

    This video is absolutely amazing! Very clear and straight to the point. I often struggle with understanding JS, and I found this video incredibly helpful. Thanks, Lydia! Looking forward for your new videos 👍

  • @JoysterRodrigues7
    @JoysterRodrigues7 หลายเดือนก่อน

    The presentation quality is top-notch! This is probably the best JS "under-the-hood" explainer out there

  • @artless-soul
    @artless-soul 26 วันที่ผ่านมา

    Thank you for all the efforts with the graphics!.. very well explained!! 👍👍

  • @kamhawy
    @kamhawy 16 วันที่ผ่านมา

    Well explained with smooth & meaningful animation.
    Awesome 👏👍

  • @glyakk
    @glyakk 25 วันที่ผ่านมา

    It is insane how much information you you were able to convey in one short video, I knew async tasks were pushed off to be filled later but I had no mental model how that worked until now.

  • @ashuvssut
    @ashuvssut หลายเดือนก่อน

    No BS just pure content! True GEM!!
    Subscribed right away at 4:22
    These small concepts took me a long time to grasp while working with JS over the years

  • @TheZenJin
    @TheZenJin หลายเดือนก่อน

    Just wow! This is pants down the best Tutorial-Style-Vid I have ever seen. Please keep it up, I love it!

  • @TheAsjath
    @TheAsjath หลายเดือนก่อน

    This is simply amazing 🤩. Learned a lot today