Gulp'i ülesannete asünkroonsus
Te peaksite mõistma, et kõik Gulp'i ülesanded - on asünkroonsed. Mida see tähendab, vaatame näite abil. Oletame, et avaliku ülesande sees kutsutakse välja kaks privaatset:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Asünkroonsus tähendab, et ülesanne task2
ei oota ülesande task1
täitmise lõppemist, vaid täidetakse
sellega paralleelselt.
Mõtleme selle üle praktilisema näite abil. Oletame, et esimene ülesanne teisendab LESS-i CSS-iks ja teine ülesanne - minifitseerib saanud CSS-i.
Sellisel juhul puutume kokku probleemiga: CSS-faili ei saa ju minifitseerida enne, kui sellesse jõuab LESS-i kompileerimise tulemus!
Kui ülesanded täidetaks sünkroonselt - järjest üksteise järel, puutuksime me teise probleemiga: ülesanded, mida saab täita paralleelselt, täidetaks üks teise järel, aeglustades Gulp'i tööd. Mõtleme ka selle üle näite abil.
Oletame, et esimene ülesanne minifitseerib CSS faile, ja teine ülesanne - minifitseerib JavaScript faile. On ilmne, et neid kaht seotut operatsiooni saab täita samaaegselt.
Õnneks pakub Gulp vahendeid, mis võimaldavad selgelt näidata, millised ülesanded peaksid täituma paralleelselt ja millised - järjestikku. Neid vahendeid käsitleme järgmises õppetükis.
Mõelge välja näide kahest ülesandest, mis peaksid täituma ainult järjestikku.
Mõelge välja näide kahest ülesandest, mis peaksid täituma ainult paralleelselt.