Funkcionální a asynchronní programování v Node.js
Spuštění skriptu v Node.js
Vytvoříme soubor main.mjs a z příkazové řádky jej 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, jaký styl importování ostatních zdrojových kódů (když z jednoho JS souboru importuji jiný) je použit. .cjs je klasický CommonJS a .mjs je modernější způsob zvaný ECMAScript 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í čítač (counter)
Refaktorovaná verze:
