Asincronia delle attività in Gulp

Dovresti capire che tutte le attività di Gulp - sono asincrone. Cosa significa, diamo un'occhiata con un esempio. Supponiamo che all'interno di un'attività pubblica vengano chiamate due attività private:

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

L'asincronia significa che l'attività task2 non aspetterà il completamento dell'esecuzione dell'attività task1, ma verrà eseguita in parallelo con essa.

Riflettiamo su questo con un esempio più pratico. Supponiamo che la prima attività trasformi LESS in CSS, e la seconda attività minimizzi il CSS ottenuto.

In questo caso incontreremo un problema: non è possibile minimizzare il file CSS prima che contenga il risultato della compilazione LESS!

Tuttavia, se le attività fossero eseguite in modo sincrono - sequenzialmente una dopo l'altra, incontreremmo un altro problema: le attività che possono essere eseguite in parallelo, verrebbero eseguite una dopo l'altra, rallentando il lavoro di Gulp. Riflettiamo anche su questo con un esempio.

Supponiamo che la prima attività minimizzi i file CSS, e la seconda attività minimizzi i file JavaScript. È ovvio che queste due operazioni non correlate possono essere eseguite contemporaneamente.

Fortunatamente, Gulp fornisce strumenti che permettono di indicare esplicitamente quali attività devono essere eseguite in parallelo e quali - sequenzialmente. Questi strumenti li analizzeremo nella prossima lezione.

Задание 1

Inventa un esempio di due attività che devono essere eseguite solo sequenzialmente.

Задание 2

Inventa un esempio di due attività che devono essere eseguite solo in parallelo.