Uzdevumu asinhronitāte Gulp

Jums jāsaprot, ka visi Gulp uzdevumi - ir asinhroni. Ko tas nozīmē, apskatīsim ar piemēru. Pieņemsim, ka publiskā uzdevuma iekšienē tiek izsaukti divi privātie uzdevumi:

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

Asinhronitāte nozīmē, ka uzdevums task2 negaidīs uz uzdevuma task1 pabeigšanu, bet gan darbosies paralēli tam.

Padomāsim par to ar praktiskāku piemēru. Pieņemsim, ka pirmais uzdevums pārveido LESS par CSS, bet otrais uzdevums - minimizē iegūto CSS.

Šādā gadījumā mēs saskarsimies ar problēmu: taču nevar minimizēt CSS failu pirms tajā nonāk LESS kompilācijas rezultāts!

Tomēr, ja uzdevumi tiktu izpildīti sinhroni - secīgi viens pēc otra, mēs saskartos ar citu problēmu: uzdevumus, kurus varētu izpildīt paralēli, tiktu izpildīti viens pēc otra, palēninot Gulp darbību. Padomāsim arī par to ar piemēru.

Pieņemsim, ka pirmais uzdevums minimizē CSS failus, bet otrais uzdevums - minimizē JavaScript failus. Acīmredzami, šīs divas nesaistītās darbības var veikt vienlaicīgi.

Par laimi, Gulp nodrošina instrumentus, kas ļauj skaidri norādīt, kuriem uzdevumiem jābūt izpildītiem paralēli, bet kuriem - secīgi. Šos instrumentus mēs apskatīsim nākamajā nodarbībā.

Задание 1

Izdomājiet piemēru diviem uzdevumiem, kuriem jāizpildās tikai secīgi.

Задание 2

Izdomājiet piemēru diviem uzdevumiem, kuriem jāizpildās tikai paralēli.