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.
Matching moments
05:24 MIN
Demystifying asynchronous execution with the event loop
Multithreading in Javascript: A guide to Web Workers
05:57 MIN
Visualizing the JavaScript event loop and call stack
JavaScript the Grumpy Parts
04:53 MIN
The four pillars of high-performance JavaScript
Things I learned while writing high-performance JavaScript applications
01:57 MIN
Presenting live web scraping demos at a developer conference
Tech with Tim at WeAreDevelopers World Congress 2024
03:03 MIN
The origin and design philosophy of JavaScript
JavaScript the Grumpy Parts
03:46 MIN
Overcoming thread limitations with event-driven programming
Concurrency in Python
12:05 MIN
Understanding the fundamentals of event-driven systems
Event Messaging and Streaming with Apache Pulsar
06:05 MIN
Optimizing code by understanding the V8 runtime
Things I learned while writing high-performance JavaScript applications
Featured Partners
Related Videos
Multithreading in Javascript: A guide to Web Workers
Dani Coll
Java 21: The Revolution of Virtual Threads - A Deep Dive
Christian Woerz
Catching up on the basics you don't really need that much code
Chris Heilmann
JavaScript the Grumpy Parts
Rob Richardson
The Lean Web
Chris Ferdinandi
Node.js: More Threads Than You Think
Matteo Collina
Things I learned while writing high-performance JavaScript applications
Michele Riva
Practice makes perfect - when it comes to RxJS
Jan-Niklas Wortmann
Related Articles
View all articles



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

Lotum media GmbH
Bad Nauheim, Germany
Senior
Node.js
JavaScript
TypeScript

doinstruct Software GmbH
Berlin, Germany
Senior
GIT
JavaScript
TypeScript

JO Media Software Solutions GmBh
Brunn am Gebirge, Austria
Senior
CSS
Angular
JavaScript
TypeScript

Speech Processing Solutions
Vienna, Austria
Intermediate
CSS
HTML
JavaScript
TypeScript

Peter Park System GmbH
München, Germany
Senior
Python
Docker
Node.js
JavaScript

Lotum media GmbH
Bad Nauheim, Germany
Senior
Vue.js
Node.js
JavaScript
TypeScript

doinstruct Software GmbH
Berlin, Germany
Intermediate
Senior
Node.js

autoiXpert GmbH & Co. KG
Stuttgart, Germany
Senior
Node.js
Angular
MongoDB
TypeScript

Saby New Compy
Bielefeld, Germany
Intermediate
Java
Kotlin