JSON
require('something');
// 1. try something.js
// 2. try something.json
// 3. try something.node
Addons
> npm i node-gyp -g
> npm install --global --production windows-build-tools
Concurrency Model and Event Loop
Event Model
The Event Loop
Slow I/O Operations
What is I/O Anyway?
Handling Slow I/O
Event Loop
The Event Loop
The entity that handles external events and converts them into callback invocations
The Event Loop
A loop that picks events from the event queue and pushes their callbacks to the call stack
The Call Stack
anonymous()
printDouble(9)
double(9)
add(9, 9)
anonymous()
printDouble(9)
console.log(18)
add(9, 9)
double(9)
Handling Slow Operations
anonymous()
slowAdd(3, 3)
slowAdd(4, 4)
slowAdd(5, 5)
console.log(6)
console.log(8)
console.log(10)
How Callbacks Actually Work
anonymous()
slowAdd(3, 3)
setTimeout()
slowAdd(4, 4)
setTimeout()
console.log(6)
console.log(8)
Timer()
cb1
cb2
cb1
cb2
anonymous()
slowAdd(3, 3)
setTimeout(cb1, d)
Timer
cb1
slowAdd(4, 4)
setTimeout(cb2, d)
Timer
cb2
cb1
cb2
cb1
console.log(6)
cb2
console.log(8)
setImmediate & process.nextTick
anonymous()
slowAdd(3, 3)
setTimeout(cb1, d)
Timer
cb1
cb1
slowAdd(4, 4)
setTimeout(cb2, d)
Timer
cb2
cb2
cb1
console.log(6)
console.log(6)
cb2
Who Named These?
Concurrency Model
By Shuhratbek Mamadaliyev
Concurrency Model
- 967