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:

javascriptfunction 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.

Задание 1

Mõelge välja näide kahest ülesandest, mis peaksid täituma ainult järjestikku.

Задание 2

Mõelge välja näide kahest ülesandest, mis peaksid täituma ainult paralleelselt.