Asinhronost zadataka u Gulp

Trebalo bi da razumete da su svi zadaci u Gulpu - asinhroni. Šta to znači, pogledajmo na primeru. Neka unutar javnog zadatka budu pozvana dva privatna:

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

Asinhronost znači da zadatak task2 neće čekati da se izvrši zadatak task1, već će se izvršavati paralelno sa njim.

Razmotrimo ovo na praktičnijem primeru. Neka prvi zadatak pretvara LESS u CSS, a drugi zadatak - minimizuje dobijeni CSS.

U tom slučaju, suočićemo se sa problemom: zar se ne može minimizovati CSS fajl pre nego što u njega uđe rezultat kompilacije LESS-a!

Međutim, da su se zadaci izvršavali sinhrono - jedan za drugim, suočili bismo se sa drugim problemom: zadaci koji se mogu izvršiti paralelno, izvršavali bi se jedan za drugim, usporavajući rad Gulpa. Hajde da ovo takođe razmotrimo na primeru.

Neka prvi zadatak minimizuje CSS fajlove, a drugi zadatak - minimizuje JavaScript fajlove. Očigledno je da se ove dve nepovezane operacije mogu izvršavati istovremeno.

Srećom, Gulp pruža alate koji omogućavaju da se eksplicitno naznači koji zadaci moraju biti izvršeni paralelno, a koji - uzastopno. Ove alate ćemo razmotriti u sledećoj lekciji.

Задание 1

Smislite primer dva zadatka koji bi trebalo da se izvršavaju samo uzastopno.

Задание 2

Smislite primer dva zadatka koji bi trebalo da se izvršavaju samo paralelno.