Funkcionální a asynchronní programování v Node.js
Spuštění scriptu v Node.js
Vytvoříme soubor main.mjs a z příkazové řádky spustíme pomocí příkazu node main.mjs
Proč .mjs?
Node.js pracuje se třemi příponami: .js .mjs a .cjs. Přípona rozhoduje jaky styl importování ostatních zdrojových kódů (z jednoho JS souboru importuju jiný) je použit. .cjs je klasický CommonJS a .mjs je modernější způsob zvaný Ecma Script Modules který budeme používat. .js je univerzální a záleží na nastavení v souboru package.json (bude vysvětleno v následujících hodinách).
Funkcionální programování
V JavaScriptu jsou funkce hodnoty tudíž je můžeme ukládat do proměnných nebo předávat jiným funkcím jako argumenty.
Funkce také mohou vracet jiné funkce
Toto začne být zajímavé pokud vnitřní funkce referencuje proměnnou vnější funkce - closure.
Array.filter
Alternativní zápis
Alternativní zápis
Array.map
Alternativní zápis
Array.find
Asynchronní programování
Program pokračuje dále zatímco nějaký úkol se vykonává na pozadí.
POZOR: Nejedná se o paralelní programování.
Event loop

Asynchronní funkce nemohou vrátit hodnotu pomocí return
Čtení pro pokročilé: http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/
Přečtení souboru z disku
Perzistentní counter
Refaktorovaná verze
