Asynchroon taken in Gulp
Je moet begrijpen dat alle Gulp taken - asynchroon zijn. Wat dit betekent, laten we bekijken aan de hand van een voorbeeld. Stel dat binnen een publieke taak twee private taken worden aangeroepen:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Asynchroon betekent dat taak task2
niet zal wachten tot de uitvoering van
taak task1 is voltooid, maar parallel
daaraan zal worden uitgevoerd.
Laten we hierover nadenken met een meer praktisch voorbeeld. Stel dat de eerste taak LESS naar CSS transformeert, en de tweede taak - de verkregen CSS minimaliseert.
In dat geval krijgen we te maken met een probleem: je kunt het CSS-bestand immers niet minimaliseren voordat het resultaat van de LESS-compilatie erin is opgenomen!
Als de taken echter synchroon zouden worden uitgevoerd - achter elkaar, zouden we te maken krijgen met een ander probleem: taken die parallel kunnen worden uitgevoerd, zouden dan achter elkaar worden uitgevoerd, wat de werking van Gulp vertraagt. Laten we dit ook overdenken met een voorbeeld.
Stel dat de eerste taak CSS-bestanden minimaliseert, en de tweede taak - JavaScript bestanden minimaliseert. Het is duidelijk dat deze twee ongerelateerde operaties gelijktijdig kunnen worden uitgevoerd.
Gelukkig biedt Gulp instrumenten die expliciet aangeven welke taken parallel moeten worden uitgevoerd, en welke - sequentieel. Deze instrumenten bespreken we in de volgende les.
Bedenk een voorbeeld van twee taken die alleen achter elkaar moeten worden uitgevoerd.
Bedenk een voorbeeld van twee taken die alleen parallel moeten worden uitgevoerd.