Gulp тапсырмаларының асинхрондылығы
Gulp тапсырмаларының барлығы асинхронды екенін түсінуіңіз керек. Бұл нені білдіреді, мысал арқылы қарастырайық. Жария тапсырма ішінде екі жеке тапсырма шақырылсын:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Асинхрондылық task2 тапсырмасының
task1 тапсырмасы аяқталуын күтпей,
олардың бір-біріне параллель орындалатынын білдіреді.
Мұны практикалық мысалмен ойластырайық. Бірінші тапсырма LESS ті CSS тілне аударсын, ал екінші тапсырма - алынған CSS ті минимизацияласын.
Бұл жағдайда біз мәселеге тап боламыз: LESS тің компиляция нәтижесі CSS файлына түскенге дейін оны минимизациялау мүмкін емес!
Алайда, егер тапсырмалар синхронды түрде орындалса - бірінен соң бірі, біз басқа мәселеге тап боламыз: параллель орындауға болатын тапсырмалар бірінен соң бірі орындалып, Gulp жұмысын баяулатады. Мұны да мысалмен ойластырайық.
Бірінші тапсырма CSS файлдарын минимизацияласын, ал екінші тапсырма - JavaScript файлдарын минимизацияласын. Бұл екі байланыссыз операцияны бір уақытта орындауға болатыны анық.
Бақытымызға орай, Gulp қандай тапсырмалардың параллель, ал қандай тапсырмалардың ретті түрде орындалуы керектігін анық көрсетуге мүмкіндік беретін құралдарды ұсынады. Бұл құралдарды келесі сабақта қарастырамыз.
Тек ретті түрде ғана орындалуы керек екі тапсырманың мысалын ойлап табыңыз.
Тек параллель түрде ғана орындалуы керек екі тапсырманың мысалын ойлап табыңыз.