Christian Woerz
The Eventloop in JavaScript - How does it work?
#1about 4 minutes
Differentiating between a JavaScript engine and a runtime
A JavaScript engine implements the ECMAScript standard, while a runtime adds extra functionality like Web APIs and the event loop.
#2about 2 minutes
Understanding why JavaScript needs an event loop
JavaScript's single-threaded nature can block the UI, so the event loop is necessary to handle asynchronous operations without freezing the application.
#3about 7 minutes
Exploring the core components of a JavaScript runtime
A runtime consists of a call stack for synchronous code, Web APIs for browser or Node features, and separate queues for microtasks and macrotasks.
#4about 2 minutes
How the event loop prioritizes and executes tasks
The event loop continuously checks if the call stack is empty, then processes all available microtasks before handling a single macrotask.
#5about 4 minutes
Demonstrating setTimeout and the macro task queue
Code example shows how `setTimeout` with a zero delay is placed in the macrotask queue and executed only after the synchronous call stack is clear.
#6about 2 minutes
Prioritizing promises with the micro task queue
A resolved promise is handled as a microtask, which is always executed before macrotasks like `setTimeout` when the call stack is empty.
#7about 3 minutes
How network latency affects promise execution order
Using `fetch`, this example shows that a promise is only added to the microtask queue upon resolution, so a slow network request can execute after a faster macrotask.
#8about 3 minutes
Starving the macro task queue with micro tasks
A recursive `queueMicrotask` call demonstrates how continuously adding microtasks can prevent the event loop from ever processing the macrotask queue.
#9about 2 minutes
Final recap of the event loop's execution order
The event loop prioritizes the call stack first, then the entire microtask queue, and finally a single task from the macrotask queue.
Related jobs
Jobs that call for the skills explored in this talk.
Senior Fullstack Engineer – Angular/.Net (f/m/d)
Apaleo
München, Germany
Remote
€65-85K
Senior
JavaScript
.NET
+2
Matching moments
03:13 MIN
Demystifying asynchronous execution with the event loop
Multithreading in Javascript: A guide to Web Workers
56:40 MIN
Visualizing the JavaScript event loop and call stack
JavaScript the Grumpy Parts
00:02 MIN
The four pillars of high-performance JavaScript
Things I learned while writing high-performance JavaScript applications
17:41 MIN
Presenting live web scraping demos at a developer conference
Tech with Tim at WeAreDevelopers World Congress 2024
03:40 MIN
The origin and design philosophy of JavaScript
JavaScript the Grumpy Parts
20:38 MIN
Overcoming thread limitations with event-driven programming
Concurrency in Python
04:35 MIN
Understanding the fundamentals of event-driven systems
Event Messaging and Streaming with Apache Pulsar
13:26 MIN
Optimizing code by understanding the V8 runtime
Things I learned while writing high-performance JavaScript applications
Featured Partners
Related Videos
Catching up on the basics you don't really need that much code
Chris Heilmann
Java 21: The Revolution of Virtual Threads - A Deep Dive
Christian Woerz
Multithreading in Javascript: A guide to Web Workers
Dani Coll
JavaScript the Grumpy Parts
Rob Richardson
WeAreDevelopers LIVE – Frontend Inspirations, Web Standards and more
Chris Heilmann, Daniel Cranney & Jan Deppisch
Beats in the Browser: Coding Music with JavaScript
Rowdy Rabouw
Leveraging Server-Sent Events (SSE) for Efficient Data Streaming in UI Development
Rainer Stropek
Things I learned while writing high-performance JavaScript applications
Michele Riva
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.



Lead Full-Stack Engineer
Hubert Burda Media
München, Germany
€80-95K
Intermediate
Senior
React
Vue.js
Node.js
MongoDB
+1


Javascript Developer Job
Frontend Revolution
Amsterdam, Netherlands
Angular
JavaScript
Test Driven Development



Remote Fullstack Dev - Real-Time Web Apps (Node/Deno)
BoraBora GmbH
Barcelona, Spain
React
MongoDB
Node.js

{"@context":"https://schema.org/","@type":"JobPosting","title":"Software Developer
Live Wire
Python
Unreal Engine