![Code Chefs - Hungry Web Developer Podcast artwork](https://is4-ssl.mzstatic.com/image/thumb/Podcasts124/v4/5a/11/ed/5a11edbd-e40a-c358-df76-c44bb7dcefe3/mza_10191979277882478471.png/100x100bb.jpg)
The Javascript Event Loop
Code Chefs - Hungry Web Developer Podcast
English - August 22, 2020 00:00 - 28 minutes - 61.5 MBTech News News Technology javascript webdevelopment html css codechefs Homepage Download Apple Podcasts Google Podcasts Overcast Castro Pocket Casts RSS feed
How does Javascript handle concurrency? When you execute asynchronous code in Javascript, it goes through something called an Event Loop. It…
How does Javascript handle concurrency?
When you execute asynchronous code in Javascript, it goes through something called an Event Loop. It describes in what order your code will run by using a call stack and a callback queue. This is important to understand so you don't run into race conditions in your codebase. In this episode, we deep dive into how it all works!
01:30 - Basics and why it matters
Javascript is single threaded
The event loop gives it Javascript the ability to handle concurrency and async code
It's useful for describing animation states
07:30 - The mechanics
Browser initializes with v8 engine
The event loop runs, and code executes top to bottom
Two concepts - callstack and heap
Callstack is FIFO (Last in first out) - like a stack of pancakes
It describes when callbacks will occur when things are finished in that execution
When nothing is left over in the callback queue, everything has been executed
12:30 Examples:
console.log("hello");
setTimeout(() => {
console.log("resolve timeout");
},5000)
console.log("last line");
Hello is logged, then resolve timeout is placed into a callback queue. last line is then logged. 5 seconds later, the callback queue is checked, and resolve timeout is logged.
What if you had a long list of executable code, and a setTimeout with a very short duration called in the middle?
console.log(1);
console.log(2);
console.log(3);
setTimeout(()=> {
console.log("set time out function")
}, 100);
//.....
console.log(1000);
The setTimeout function will still execute after all other code runs.
16:50 - Additional notes
For async await, understand the order in which your promises are resolving.
If two HTTP calls can be executed in parallel, use Promise.all()
Stack vs Heap in Event Loops
22:00 - Dessert Time
22:40 - Swimming with Vincent
24:00 - Linux OS and GPUs with German
German's Twitter
Vincent's Twitter
Vincent's Instagram
Tweet us your thoughts on @codechefsdev