Asincronía de tareas en Gulp
Debes entender que todas las tareas de Gulp son asíncronas. ¿Qué significa esto? Veámoslo con un ejemplo. Supongamos que dentro de una tarea pública se llaman dos tareas privadas:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
La asincronía significa que la tarea task2
no esperará a que termine la ejecución de la
tarea task1, sino que se ejecutará
en paralelo con ella.
Pensemos en esto con un ejemplo más práctico. Supongamos que la primera tarea convierte LESS a CSS, y la segunda tarea - minimiza el CSS obtenido.
En este caso nos encontraremos con un problema: ¡no se puede minimizar el archivo CSS antes de que contenga el resultado de la compilación LESS!
Sin embargo, si las tareas se ejecutaran de forma síncrona - secuencialmente una tras otra, nos enfrentaríamos a otro problema: las tareas que se pueden ejecutar en paralelo, se ejecutarían una tras otra, ralentizando el trabajo de Gulp. Pensemos también en esto con un ejemplo.
Supongamos que la primera tarea minimiza archivos CSS, y la segunda tarea - minimiza archivos JavaScript. Evidentemente, estas dos operaciones no relacionadas pueden realizarse simultáneamente.
Afortunadamente, Gulp proporciona herramientas que permiten indicar explícitamente qué tareas deben ejecutarse en paralelo y cuáles - secuencialmente. Analizaremos estas herramientas en la siguiente lección.
Imagine un ejemplo de dos tareas que deben ejecutarse solo secuencialmente.
Imagine un ejemplo de dos tareas que deben ejecutarse solo en paralelo.