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
- 1,034