Kate Humphrey
Single-threaded
Call Stack
APIs
Event Queue
console.log('Hello')
setTimeout(() => {
console.log('timed out')
}, 0)
console.log('World')
console.log('Hello')
== one call stack == one thing at a time
Single-threaded == one call stack == one thing at a time
Call Stack
APIs
Event Queue
console.log('Hello')
setTimeout(() => {
console.log('timed out')
}, 0)
console.log('World')
setTimeout(() => {
console.log('timed out')
}, 0)
Single-threaded == one call stack == one thing at a time
Call Stack
APIs
Event Queue
console.log('Hello')
setTimeout(() => {
console.log('timed out')
}, 0)
console.log('World')
setTimeout(() => {
console.log('timed out')
}, 0)
Single-threaded == one call stack == one thing at a time
Call Stack
APIs
Event Queue
console.log('Hello')
setTimeout(() => {
console.log('timed out')
}, 0)
console.log('World')
console.log('timed out')
console.log('World')
Single-threaded == one call stack == one thing at a time
Call Stack
APIs
Event Queue
console.log('Hello')
setTimeout(() => {
console.log('timed out')
}, 0)
console.log('World')
console.log('timed out')
Single-threaded == one call stack == one thing at a time
Call Stack
APIs
Event Queue
console.log('Hello')
setTimeout(() => {
console.log('timed out')
}, 0)
console.log('World')
console.log('timed out')
Single-threaded == one call stack == one thing at a time
Call Stack
APIs
Event Queue
console.log('Hello')
setTimeout(() => {
console.log('timed out')
}, 0)
console.log('World')
Let's code it!
Event Queue
Timers
pending callbacks
Poll
setImmediate
Incoming:
connections,
data, etc.
process.nextTick
Let's check out some code!
Now let's make our own from scratch!!