⊗tlGpBsTA 5 of 14 menu

Asynchronicité des tâches dans Gulp

Vous devez comprendre que toutes les tâches Gulp sont asynchrones. Ce que cela signifie, regardons sur un exemple. Supposons qu'à l'intérieur d'une tâche publique deux tâches privées sont appelées :

function taskD(cb) { task1(cb); task2(cb); cb(); }

L'asynchronicité signifie que la tâche task2 n'attendra pas la fin de l'exécution de la tâche task1, mais s'exécutera en parallèle avec elle.

Réfléchissons à cela avec un exemple plus pratique. Supposons que la première tâche transforme LESS en CSS, et la deuxième tâche - minimise le CSS obtenu.

Dans ce cas, nous rencontrerons un problème : il est impossible de minimiser le fichier CSS avant qu'il ne contienne le résultat de la compilation LESS !

Cependant, si les tâches s'exécutaient de manière synchrone - séquentiellement l'une après l'autre, nous rencontrerions un autre problème : les tâches qui peuvent être exécutées en parallèle, s'exécuteraient l'une après l'autre, ralentissant le travail de Gulp. Réfléchissons également à cela avec un exemple.

Supposons que la première tâche minimise les fichiers CSS, et la deuxième tâche - minimise les fichiers JavaScript. Il est évident que ces deux opérations non liées peuvent être effectuées simultanément.

Heureusement, Gulp fournit des outils permettant d'indiquer explicitement quelles tâches doivent être exécutées en parallèle, et lesquelles - séquentiellement. Nous analyserons ces outils dans la prochaine leçon.

Trouvez un exemple de deux tâches qui doivent s'exécuter uniquement de manière séquentielle.

Trouvez un exemple de deux tâches qui doivent s'exécuter uniquement en parallèle.

bydeenesfrptru