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:
function 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ā.
Izdomājiet piemēru diviem uzdevumiem, kuriem jāizpildās tikai secīgi.
Izdomājiet piemēru diviem uzdevumiem, kuriem jāizpildās tikai paralēli.