A feladatok aszinkronitása a Gulp-ban

Érdemes megérteni, hogy minden Gulp feladat - aszinkron. Mit is jelent ez, nézzük meg egy példán keresztül. Tegyük fel, hogy egy nyilvános feladaton belül két privatív hívódik meg:

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

Az aszinkronitás azt jelenti, hogy a task2 feladat nem várja meg a task1 feladat befejeződését, hanem azzal párhuzamosan fog futni.

Gondoljuk ezt át egy gyakorlatiasabb példán. Tegyük fel, hogy az első feladat a LESS-t CSS-sé alakítja, a második feladat pedig minimalizálja a kapott CSS-t.

Ebben az esetben problémába ütközünk: hiszen nem minimalizálhatjuk a CSS fájlt azelőtt, hogy a LESS kompilálásának eredménye belekerülne!

Azonban, ha a feladatok szinkronon futnának - egymás után, sorban, akkor egy másik problémával néznénk szembe: a párhuzamosan is végrehajtható feladatok egymás után futnának, lelassítva a Gulp munkáját. Gondoljuk ezt át egy példán keresztül.

Tegyük fel, hogy az első feladat minimalizálja a CSS fájlokat, a második feladat pedig minimalizálja a JavaScript fájlokat. Nyilvánvaló, hogy ez a két, egymással nem összefüggő művelet egyidejűleg is végrehajtható.

Szerencsére a Gulp olyan eszközöket kínál, amelyek lehetővé teszik, hogy kifejezetten megadjuk, mely feladatoknak kell párhuzamosan, és melyeknek - sorban végrehajtódniuk. Ezeket az eszközöket a következő leckében vesszük figyelembe.

Задание 1

Találj ki egy példát két olyan feladatra, amelyeknek csak sorban kell végrehajtódniuk.

Задание 2

Találj ki egy példát két olyan feladatra, amelyeknek csak párhuzamosan kell végrehajtódniuk.