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
56:40 MIN
Visualizing the JavaScript event loop and call stack
JavaScript the Grumpy Parts
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
03:13 MIN
Demystifying asynchronous execution with the event loop
Multithreading in Javascript: A guide to Web Workers
00:03 MIN
Introduction to JavaScript design patterns
10 must-know design patterns for JS Devs
1:07:33 MIN
Q&A: Arrow functions and Node.js multithreading
JavaScript the Grumpy Parts
25:45 MIN
JavaScript's journey from browser wars to native APIs
The State Of The Web
41:37 MIN
Modern developer tools and debugging workflows
WeAreDevelopers LIVE - Whats Nuxt and Next for app development, 20 years AJAX and more
Featured Partners
Related Videos
Catching up on the basics you don't really need that much code
Chris Heilmann
JavaScript the Grumpy Parts
Rob Richardson
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
10 must-know design patterns for JS Devs
Erick Wendel
Snappy UI needs no Single-Page Application
Clemens Helm
The Lean Web
Chris Ferdinandi
From learning to earning
Jobs that call for the skills explored in this talk.
Interactive Developer (Javascript, JS Libraries, MVC) &ndash
Thegiglab
Amsterdam, Netherlands
CSS
MVC
Node.js
MooTools
JavaScript


