Asynchrónnosť úloh v Gulp
Mali by ste pochopiť, že všetky úlohy Gulp sú asynchrónne. Čo to znamená, pozrime sa na príklad. Nech sa vo verejnej úlohe volajú dve privátne:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Asynchrónnosť znamená, že úloha task2
nebude čakať na dokončenie vykonávania
úlohy task1, ale bude sa vykonávať
súbežne s ňou.
Zamyslime sa nad tým na praktickejšom príklade. Nech prvá úloha transformuje LESS na CSS a druhá úloha minimalizuje výsledné CSS.
V takom prípade narazíme na problém: veď nie je možné minimalizovať CSS súbor predtým, ako sa do neho dostane výsledok kompilácie LESS!
Avšak, ak by sa úlohy vykonávali synchrónne - postupne jedna za druhou, stretli by sme sa s iným problémom: úlohy, ktoré je možné vykonať paralelne, by sa vykonávali jedna za druhou, čo by spomalilo prácu Gulp. Zamyslime sa aj nad tým na príklade.
Nech prvá úloha minimalizuje CSS súbory, a druhá úloha minimalizuje JavaScript súbory. Je zrejmé, že tieto dve nesúvisiace operácie je možné vykonať súčasne.
Našťastie, Gulp poskytuje nástroje, ktoré umožňujú explicitne určiť, ktoré úlohy majú byť vykonané paralelne a ktoré postupne. Tieto nástroje si rozoberieme v nasledujúcej lekcii.
vymyslite príklad dvoch úloh, ktoré by mali byť vykonané iba postupne.
vymyslite príklad dvoch úloh, ktoré by mali byť vykonané iba paralelne.