What the heck is the event loop anyway? | Philip Roberts | JSConf EU

Поділитися
Вставка
  • Опубліковано 8 жов 2014
  • JavaScript programmers like to use words like, “event-loop”, “non-blocking”, “callback”, “asynchronous”, “single-threaded” and “concurrency”.
    We say things like “don’t block the event loop”, “make sure your code runs at 60 frames-per-second”, “well of course, it won’t work, that function is an asynchronous callback!”
    If you’re anything like me, you nod and agree, as if it’s all obvious, even though you don’t actually know what the words mean; and yet, finding good explanations of how JavaScript actually works isn’t all that easy, so let’s learn!
    With some handy visualisations, and fun hacks, let’s get an intuitive understanding of what happens when JavaScript runs.
    Transcript: 2014.jsconf.eu/speakers/philip...
    License: For reuse of this video under a more permissive license please get in touch with us. The speakers retain the copyright for their performances.
  • Наука та технологія

КОМЕНТАРІ • 1,7 тис.

  • @sumanyusoniwal5194
    @sumanyusoniwal5194 2 місяці тому +110

    9 years later, and this is still pure gold.

    • @vitvitvitvitvitvitvitvit
      @vitvitvitvitvitvitvitvit Місяць тому +3

      yeah, but now there are microTask queue too, which one is prioritized and execute the callbacks before task queue

    • @nomadshiba
      @nomadshiba 14 днів тому

      @@vitvitvitvitvitvitvitvit we also have WebWorker(s) too

  • @marios2liquid
    @marios2liquid 9 років тому +4061

    This talk is the perfect example of "If you can't explain it simply, you don't understand it well enough". Well done Philip.

    • @MehdiRaash
      @MehdiRaash 4 роки тому +14

      That's quit simple!

    • @JenJHayden
      @JenJHayden 4 роки тому +4

      agreed

    • @gopalgplus
      @gopalgplus 4 роки тому +2

      Agreed!

    • @pastuh
      @pastuh 4 роки тому +11

      CS50 teacher explains very well too.. Sometimes i'm worried he will forget to breath..

    • @seongamkim4834
      @seongamkim4834 4 роки тому

      That sounds wonderful.

  • @apoorvasa1026
    @apoorvasa1026 2 роки тому +1315

    Today I had interview and was asked about execution context and i explained him based on this video. my interviewer was so impressed with the my answer. he said "This is the best explanation i have heard so far". made my day 🙂

  • @syedmuhammadibtisam441
    @syedmuhammadibtisam441 Рік тому +465

    He understood it in 18 months, for me it took 26 minutes, that is how much he helped me, really appreciate it. Time is all you have. Thank you man!!!

  • @luciferonetwothree2030
    @luciferonetwothree2030 5 років тому +1421

    watching this in 2019, and it is still the best source to learn JS event loop.

    • @bennyrussell4966
      @bennyrussell4966 4 роки тому +10

      couldn't agree more, just rewatched it there for a refresh

    • @castelocl
      @castelocl 4 роки тому +32

      watching this in 2020

    • @petrd6173
      @petrd6173 4 роки тому +4

      @@castelocl and still relevant!

    • @user-xb8bk1hd8s
      @user-xb8bk1hd8s 4 роки тому +7

      still the best in 2020

    • @yuanmin6496
      @yuanmin6496 4 роки тому

      @@user-xb8bk1hd8s I agree

  • @AndreOliveira-vq7iv
    @AndreOliveira-vq7iv 5 років тому +408

    13:45
    "The event loop job is to look at the stack and look at the task queue. If the stack is empty, it takes the first thing on the queue and pushed it on to the stack."

    • @mementomori8856
      @mementomori8856 3 роки тому +1

      what if there's multiple tasks in the queue ... and they'll get done in some order ... doesn't that make it a sync-function of it's world??

    • @mementomori8856
      @mementomori8856 3 роки тому +1

      never mind ...

    • @khaledelnagar4135
      @khaledelnagar4135 3 роки тому +51

      @@mementomori8856 it's async for you as a developer, but at the end, there has to be a queue for that poor single thread... serverless is serverless for you but at the end there has to be a server to run your code!

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

      @@khaledelnagar4135 This makes no sense

    • @kaelon9170
      @kaelon9170 Рік тому +5

      @@viridianite It does make sense, but only if you have some basic working knowledge or better on how multithreading works, and the fact that JS is still a single-threaded language despite supporting asynchronous code.

  • @domaincontroller
    @domaincontroller 3 роки тому +360

    00:53 how does javascript actually work ? 02:46 V8, setTimeout 04:03 the call tack 07:18 blocking, what happens when things are slow 10:35 aynchronous callbacks, setTimout 11:13 aynchronous callbacks, the call stack 11:56 concurrency 12:50 stack, webapis, eventloop, task queue, console

    • @FoysalAhmed-gd9sp
      @FoysalAhmed-gd9sp Рік тому +26

      00:53 how does javascript actually work ?
      02:46 V8, setTimeout
      04:03 the call stack
      07:18 blocking, what happens when things are slow
      10:35 aynchronous callbacks, setTimout
      11:13 aynchronous callbacks, the call stack
      11:56 concurrency
      12:50 stack, webapis, eventloop, task queue, console

  • @R3fuge
    @R3fuge 2 роки тому +91

    8 years ago and this is still my favorite explanation of the event loop. Brilliant communication.

  • @sunmustbedestroyed
    @sunmustbedestroyed 9 років тому +1449

    I like this guy. He's so humble and explains things with such clarity - an for a universal audience. That's no easy feat.

  • @thedevcyclist
    @thedevcyclist 8 років тому +601

    Best event-loop explanation ever .... !!!

    • @johannbauer2863
      @johannbauer2863 5 років тому +5

      What about Jake Archibalds explanation?

  • @c3eb4
    @c3eb4 4 роки тому +245

    i can't even express how much i appreciate this video. i watch it every couple of months as a refresher. and encourage my team to do the same.

  • @agusmoles
    @agusmoles 5 років тому +26

    2019 and this is still awesome. Great explanation!

  • @nadiar.syaripul
    @nadiar.syaripul 8 років тому +839

    this video changed my life,.. great

    • @babas_babas
      @babas_babas 8 років тому

      +Nadiar AS Same, his show is really clear, I learned so much thanks to him :p

    • @jonnieve2483
      @jonnieve2483 7 років тому +1

      Yeah, awesome presentation

    • @lakshithaweerakkody5326
      @lakshithaweerakkody5326 6 років тому +1

      Truly is. Mine too. Simply Brilliant Video

    • @aishahale5504
      @aishahale5504 5 років тому +5

      You need to know about Tony Alecia

    • @Gigusx
      @Gigusx 5 років тому

      lol.

  • @ManasGupta_mag
    @ManasGupta_mag 7 років тому +71

    This guy just cleared the stack for my callback queue of understanding javascript to execute.
    Great explanation.

    • @Nadrioc
      @Nadrioc 4 роки тому

      @@xxicenturyfuck1195 He mentions he used Keynote, which is the powerpoint for Apple software. There a ton of tutorials online showing how to do animations

  • @element3663
    @element3663 3 роки тому +58

    This gave me a breakthrough moment in realizing how async JS actually works. Really good talk.

  • @djkater
    @djkater 7 років тому +794

    the gareth bale of js!

  • @jonsanders2069
    @jonsanders2069 6 років тому +23

    I've returned to this video several times to engrain the concept of the event loop in my head. It's so clearly explained and so useful. Thanks so much for making it!

  • @andriciandu
    @andriciandu 5 років тому +294

    For videos like this, youtube should implement a multi-thumbs-up system.

    • @RockDavid
      @RockDavid 4 роки тому +5

      They already do, how else you think Fake news is so "Popular" these days

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

      @@RockDavid I think you misunderstood what he was meaning.

    • @sarthaktyagi0447
      @sarthaktyagi0447 19 годин тому

      @@coldblackice I think you misunderstood what he was meaning.

  • @BlueTreeCode
    @BlueTreeCode 5 років тому +1

    Honestly one of the best videos I've come across. Everything is explained so clearly. He Is excellent at what he does and I hope to hear more from him!

  • @manojmj5479
    @manojmj5479 5 років тому +14

    This video is life-changing! Thank you for this, Philip! It takes great understanding to explain complex things in simple ways. And thank you for not gatekeeping - we need more people to come into tech and videos like this make sure that even noobs understand and can work with seemingly hard concepts!

  • @navaneethagastya
    @navaneethagastya 9 років тому +28

    Really, Amazing talk, bro! :)
    Once I came up across a scenario where calling a function, say "func()" did not work rather, setTimeout(func, 0) worked!
    Now, I understood the reason completely!! :)

  • @sredna3714
    @sredna3714 5 років тому +1

    So helpful! Great video. I've been learning computer science for years and you still explained all of this better than any professor I've had. Major kuddos to you :)

  • @mdmobasshir595
    @mdmobasshir595 Рік тому +1

    8 years down the lane for this video, current in year 2023. Buffering through many videos on event loop still find this one the best. The energy of this man...can feel it on screen as well. Wish i could attend his session once in my life in person.

  • @sushilkumartechy
    @sushilkumartechy 7 років тому +116

    thanks @Philip Roberts first time I completely understand event loop :). If you have some other video on js please share.

    • @aishahale5504
      @aishahale5504 5 років тому +4

      Javascript Understanding the weird parts

    • @NishadAhsan
      @NishadAhsan 4 роки тому

      @@aishahale5504 Different author.

    • @aishahale5504
      @aishahale5504 4 роки тому

      @@NishadAhsan Yes, try it.

  • @hraynaud
    @hraynaud 8 років тому +25

    This is by far one of the best presentations on any programming concept I've ever seen. Absolutely brilliant. Thank you!!

  • @Hariharan-sh6bo
    @Hariharan-sh6bo 4 місяці тому +3

    Graduated in 2015, worked in JS alone for 4+ years, discovered this only today! Thank you

  • @maximpekarsky7266
    @maximpekarsky7266 2 роки тому +5

    This was my introduction to great conference talks, and, I really believe, one of the experiences that turned me from hobbyist to developer.

  • @sethfeingold
    @sethfeingold 4 роки тому +5

    This will no doubt remain a fantastic presentation well into 2020 and beyond. Thank you, Philip!

  • @MelMacaluso
    @MelMacaluso 5 років тому +10

    Genius talk, seriously. Not hiding behind many fancy technicalities and being able to still convey high-level concepts and make them understandable is surely not an easy skill. Props!

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

    I love this talk, he explains asynchronous code so it's totally intuitive and clear. Thanks Philip!

  • @abhinavgupta1846
    @abhinavgupta1846 3 роки тому

    By far the best explanation of the JS event loop I ever came across. Must watch for every JS lover out there!

  • @chunk1978
    @chunk1978 5 років тому +5

    This is by far the most informative and accessible talks about asynchronous functionality in JavaScript. Thanks, Philip, for showing us the light.

  • @carlellis9647
    @carlellis9647 3 роки тому +5

    This is one of the best lectures on JavaScript that I've seen anywhere. Phillip does a great job of using visualization to explain some of the more complicated aspects of JavaScript programming while making it look easy. That's truly commendable.

  • @dushyantsabharwal6706
    @dushyantsabharwal6706 4 роки тому +2

    Its not just the content of the video that is amazing but also the slides are done so nicely and as a speaker i know making a simpler presentation on a technical topic is very hard. Kudos Philip!

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

    Some explanations are so good that you understand the concept crystal clear. It really sticks with you, thank you.

  • @JoseSotoCanHelp
    @JoseSotoCanHelp 9 років тому +10

    When I watched this video, I knew it would prove useful for my work. Less than a month later, it happened. Thank you for the great presentation!!

  • @DanielRamBeats
    @DanielRamBeats 8 років тому +3

    Really awesome talk, I knew conceptually what was happening in the event ques prior to watching this, but the visualizations clarify it so well.

  • @msbecks3806
    @msbecks3806 3 роки тому +1

    Honestly, your explanation is down-to-earth for the understanding of
    all. Great work!

  • @rameshwari
    @rameshwari 3 роки тому +40

    Wow... amazing lecture. The way he is explaining is great. I wish a whole JS course should be taught by him.

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

    I've been watching some interviews and mocks preparing for my own, and people nebulously reference 'the event loop' and single-threadedness very often, like "How does X work?" "ahh, the event loop", but more in a buzzword way than as an explanation, so thank you for this video. It was super helpful

  • @msshwetap7095
    @msshwetap7095 3 роки тому +1

    This explanation changes my life every time I watch it. Thank you!

  • @idrisawedazubair2562
    @idrisawedazubair2562 10 місяців тому +1

    I've literally read many articles trying to understand this very well, but now I think I do. His explanation is amazing.

  • @BURN-ADDiCT
    @BURN-ADDiCT 2 роки тому +8

    "I did not do a computer science degree, so these words... they're words"
    I relate so so deeply with that

  • @okikiolaosunronbi8766
    @okikiolaosunronbi8766 Рік тому +3

    This has to be one of the best explanations out there about the event loop.

  • @deepakkj
    @deepakkj 5 років тому

    No one can explain better than this guy. So far the best demo I have ever seen on jsconf videos

  • @kandysman86
    @kandysman86 5 років тому

    This was an awesome talk, and i love the tool this dude built. He has changed the way i look at writting my JS.

  • @AshokDey
    @AshokDey 7 років тому +35

    It's the first time I'm giving a comment in 7 years. This guy did such a great presentation. It was fantastic. Such a complex topic broken down into small lucid chunks ! Great work.

    • @Martinit0
      @Martinit0 2 роки тому +5

      Puh, hey I'm your callback. Why did you queue me with 5 years delay?

  • @DecaSpace
    @DecaSpace 8 років тому +24

    The intro music tho.... I turned off the lights and got my glowstick game on. He's amazing. It was an excellent video. My ADHD did not kicked in ever while watching it. 10/10. Will buy again.

  • @dynamic75
    @dynamic75 3 роки тому

    Thank you for breaking down these concepts into more digestible pieces, still trying to comprehend all of the details but I get the overall idea.
    Great job!

  • @Middollo
    @Middollo Рік тому +1

    I find myself coming back to this talk as i progress in my career as a JS developer. I think this is my third time watching it, it gets better every time. Well done.

  • @guilhermeferreirabr
    @guilhermeferreirabr 2 роки тому +4

    Funny how many "senior" JS devs think that they are clever AF because they interview you with this kind of questions but, in here, he managed to explain so clearly these concepts that destroy all the "mystery" of these guys intelligence ...
    What an awesome explanation! Simple and sharp!

  • @sahilattri51
    @sahilattri51 8 років тому +8

    brilliance! Absolutely stunning. Thank you

  • @gerryramosftw
    @gerryramosftw 3 роки тому

    holy crap this talk was from 6 years ago, still the best video I've watched on explaining javascript event loop in 2020

  • @johnnychan6755
    @johnnychan6755 8 років тому +15

    I have been trying very hard understanding this whole JavaScript event-loop, callback, and asynchronous concepts for WEEKS (and failed), despite tons of google searches, article readings and tutorials. I think I finally "got it" after watching this video. So thank you SO MUCH for the talk Philip!!! (and thanks for sharing this JSConf!). I sense "hope"... in understanding and using JavaScripts :)

  • @MrLiudongtony
    @MrLiudongtony 3 роки тому +8

    Watched it at the end of year 2020 and it is still one of the best in its kind to explain the event loop.

  • @fhc9916
    @fhc9916 4 роки тому +1

    Probably one of the best talks I've seen in recent times.

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

    I love this talk so much. Can't help but keep coming to watch again every few months.

  • @ClaymorePT
    @ClaymorePT 7 років тому +37

    From someone who does not have a degree in computer science, I have to say, this is one hell of a good explanation!
    I only which that the teachers that I had during my CS degree, explained things as good as this guy.
    Really awesome!

  • @Josematube
    @Josematube 8 років тому +239

    Great explanation.

  • @nshettys
    @nshettys 4 роки тому

    Just one word...FANTASTIC. Thanks a lot. You deserve a standing ovation

  • @justadev____7232
    @justadev____7232 3 роки тому +1

    Mind blown!!!!! The lightbulb just turned on. THANK YOU!!!!!!

  • @shalizi1280
    @shalizi1280 8 років тому +30

    This is absolutely a marvelous explanation of event loops within javascript. It doesn't get better than this, thank you.

    • @yeshiqing8929
      @yeshiqing8929 6 років тому

      Do you know what the ppt is made by? I like the ppt style(animation most). but i think the microsoft ppt is so heavy

    • @4Y0P
      @4Y0P 5 років тому

      Ye Shiqing its made in keynote

  • @prashantchauhan1360
    @prashantchauhan1360 Рік тому +3

    One of the best js videos till today. I wonder it was uploaded 8 years ago. If i would have watched then I would be that much AOT (Ahead of time).

  • @aminukano_
    @aminukano_ 5 років тому +1

    I just pause while watching to recheck the speaker's name, wondering that we still have such great speakers.
    This is by far the best tech conference talk I ever watched in my life!!

  • @user-lu7dm2fg2x
    @user-lu7dm2fg2x 5 місяців тому

    This video was an absolute gem - 26 minutes well spent! Thankyou so much for this.

  • @juanmanueltoni2506
    @juanmanueltoni2506 9 років тому +7

    Amazing,!! the best and simplest explanation I've seen, thanks

  • @JoshuaDellay
    @JoshuaDellay 9 років тому +6

    Talk about boss mode, great work by Philip! The loop tool he created is amazing for helping to visualize the runtime, event queue/loop and web api! I can only imagine the time that went into creating and researching how to build it and you can see by his facial expression how much of a challenge it must have been hahah!

  • @AlayDhagia
    @AlayDhagia 4 роки тому

    I knew the concept of event loop but man your explanation is simply amazing. Thanks a lot for putting this up !!

  • @rimoros.1020
    @rimoros.1020 3 роки тому +1

    Didn't realize this was 6 and a half years ago, still the best explanation and the only explanation I need!

  • @nosajghoul
    @nosajghoul 9 років тому +123

    @19:18 you can see his history. I found it reassuring that a guy with this level of knowledge still has to look up the syntax for Date(). :-) Great dissection of the event loop.

    • @timeslowingdown
      @timeslowingdown 5 років тому +65

      Good example of why code interviews that just test how well someone has memorized various language apis/functions are an ineffective way to determine the candidate's knowledge :)

    • @lighterinthestorm
      @lighterinthestorm 4 роки тому +2

      @@timeslowingdown None of those tests actually check if you have those things memorized. All those tests are there to see how you look for the best available solution

    • @timeslowingdown
      @timeslowingdown 4 роки тому +9

      @@lighterinthestorm Finding the solution to a single function with input and output is very different than writing an entire application or maintaining it, so I beg to differ

    • @kotekutalia
      @kotekutalia 4 роки тому +2

      That's why Incognito Mode exists

    • @theshermantanker7043
      @theshermantanker7043 3 роки тому +3

      Remembering the correct parameters for a function in a library is not a prerequisite for being a good developer, in the same way that needing a calculator in a math exam doesn't mean you're cheating. If you like calculating or memorising sure go ahead, but if you're lazy it's fine

  • @rahulraut1569
    @rahulraut1569 5 років тому +5

    This video has helped me cracking interviews!! Thanks Man!

  • @youAmera
    @youAmera 4 роки тому

    How good Philip's explanation is, unbelievable. Top content!

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

    Philip describes the event loop mechanism in a perfect way. Lots of love and respect.

  • @syedbaryalay5849
    @syedbaryalay5849 5 років тому +4

    worth every second, watching it the second time.

  • @theyoutubeliva
    @theyoutubeliva 6 місяців тому

    honestly this is the best convo about js runtime ive ever listened. thank you phil!

  • @kikevanegazz325
    @kikevanegazz325 Рік тому +1

    There are really no words to say how great this talk was. Amazingly clear, fun, and straight to the point.

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

    After 5 days It will be 2022, and this is still the best introduction to the event-loop ever. Thank you :)

  • @timzhang8751
    @timzhang8751 4 роки тому +17

    watching this is 2020, and it is still the best source to learn JS event loop.

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

    A succinct video on the Event loop presented with tremendous clarity. Thank you!

  • @busyrand
    @busyrand 4 роки тому

    This is brilliant! I thought I understood this stuff, but now I really do understand what is going on. Perfect visual examples. Well done.

  • @tak68tak
    @tak68tak 5 років тому +3

    the best video ever seen. it's still awesome in 2019!

  • @gnclmorais
    @gnclmorais 8 років тому +6

    Excellent presentation! 👏👏👏

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

    one of the best if not the best explanation on this particular topic.
    Philip you really are amazing, keep up the good stuff

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

    Brilliant. No question that this talk opened up new doors for this young man.

  • @mohammedelhadididi4612
    @mohammedelhadididi4612 3 роки тому +3

    This lecture is just a masterpiece

  • @user-sl6zf3te7t
    @user-sl6zf3te7t 3 роки тому +3

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

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

    I remember I watched it back in 2016, and now in 2022, I came back to check if it was as good as I remember, and... yes, it's definitively is. There's a real good stuff here, congrats Philip!

  • @v4raziel
    @v4raziel 3 роки тому

    Thank you phillips. i been programming from 12-14 years. never come i across to understand event loop. thank you so simply explained.

  • @CodeSynergy
    @CodeSynergy Рік тому +3

    oh, that was in 2014 and I thought it is the latest talk, amazing!

  • @teamworkucla
    @teamworkucla 8 років тому +6

    Well explained! Thank you.

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

    Still the best explanation of what event loop is, with great examples.
    Thank you Philip

  • @TheUnrestrainedTaco
    @TheUnrestrainedTaco 3 роки тому

    Very clear and concise explanation of the event loop and related functionality, easiest introduction to the concepts I've found so far. Thanks :)

  • @rozoneri
    @rozoneri 9 років тому +3

    thank you, excellent presentation.

  • @oksanaserhiivna2634
    @oksanaserhiivna2634 6 років тому +5

    Fantastic explanation!!!

  • @richardbrown3639
    @richardbrown3639 5 років тому +1

    Massively underrated content. Thank you so much for producing this 👏🏻👏🏻👏🏻👏🏻

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

    7 years later some things have changed. Now we have service workers in a seperate thread. And we have await/async functions. But yes, this talk makes the things clearer to understand. thank you!

  • @TheHolyReality
    @TheHolyReality 7 років тому +166

    Interesting how no textbooks mention this stuff wich in my opinion is crucial in understanding core javascript and especially closures (especially when every example on closures out there contains *for* loop with setTimeout and never explains or even mentions event loop and why does *for* loop first finish its iterations and then invokes setTimeout callbacks)

    • @ihateslowcars
      @ihateslowcars 7 років тому +7

      I just made the connection with what you're saying! It finally makes sense!

    • @johnb1391
      @johnb1391 6 років тому +28

      What he means is that a very common practice question given to novices to see if they understand closures is the following:
      const arr = [0,1,2,3];
      for (var i = 0; i < arr.length; i++) {
      setTimeout(function() {
      console.log('index ' + i + ', value: ' + arr[i]);
      }, 3000);
      }
      //Prints 'index 4, value: undefined'
      The issue here is that because var is function scoped and not block scoped, i will break out of the loop when it hits the value 4 (as i will now equal arr.length, breaking the test of the for loop). As index 4 is out-of-bounds, it returns undefined as the value for arr[4]. Closures via something like the let keyword mitigate this problem, however. So the test in question is to see whether or not the novice understands the issues of closure with var versus the new block-level variable definers: let and const.

    • @raulnoheagoodness
      @raulnoheagoodness 6 років тому +2

      Javascript: The Good Parts by Doug Crockford explains closures very well. Also function-orientation. Other core JS lang features, but not the event loop.

    • @chriscorrigan14
      @chriscorrigan14 5 років тому +12

      @@johnb1391 Or maybe a less granular way to explain it is: once the for loop is done setting up the setTimeout callbacks, it is finished, and the variable is at its final value of 4. Meanwhile the callbacks run for 3 seconds each, and they are still active - when they print the value of i, it is always 4 (unexpected). You can create closures around the timeout function value to keep the value of i as it was when the callback was created, by either passing it to a function outside of the loop to create the callback, or just making that setTimeout function an IIFE - immediately invoking it creates the closure while the i is still at its iterative value.
      Well I guess that was more words lol. Is there any simple way to explain closures?

    • @boliussa
      @boliussa 5 років тому

      @@chriscorrigan14 thanks that's a great explanation,, can you include some code examples for "You can create closures around the timeout function value to keep the value of i as it was when the callback was created, by either passing it to a function outside of the loop to create the callback, or just making that setTimeout function an IIFE "?

  • @mbasitbilal
    @mbasitbilal 7 років тому +6

    best explanation ever ! literally

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

    BRILLANT. Thank you, this finally allowed me to make sense of JS and the Browser execution as a lifelong Assembly Language programmer.

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

    One of the best explanations of the event loop I’ve seen. Thank you!