Gulpda vazifalarning asinxronligi
Siz Gulpning barcha vazifalari - asinxron ekanligini tushunishingiz kerak. Bu nima deganini, keling misolda ko'ramiz . Faraz qilaylik, jamoat vazifasi ichida ikki xususiy vazifa chaqirilsin:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Asinxronlik deganda, task2 vazifasi
task1 vazifasi bajarilishini kutmaydi,
balki uning bilan parallel bajarilishi tushuniladi.
Keling buni amaliyroq misolda o'ylab ko'ramiz . Faraz qilaylik, birinchi vazifa LESSni CSSga aylantirsin, ikkinchi vazifa esa - olingan CSSni minimallashtirsin.
Bunday holda biz muammoga duch kelamiz: axir LESS kompilyatsiyasi natijasi CSS fayliga tushmasidan oldin, CSS faylini minimallashtirib bo'lmaydi!
Biroq, agar vazifalar sinxron bajarilganida - ketma-ket biri ikkinchisidan so'ng, biz boshqa muammoga duch kelgan bo'lar edik: parallel bajarish mumkin bo'lgan vazifalar ketma-ket bajarilib, Gulpning ishlash sekinligiga sabab bo'lar edi. Keling buni ham misolda o'ylab ko'ramiz.
Faraz qilaylik, birinchi vazifa CSS fayllarini minimallashtirsin, ikkinchi vazifa esa - JavaScript fayllarini minimallashtirsin. Shubhasiz, bu ikkita bog'liq bo'lmagan amallarni bir vaqtning o'zida bajarish mumkin.
Yaxshiyamki, Gulp qurollarni taqdim etadi, bu esa qaysi vazifalar parallel, qaysilari ketma-ket bajarilishini aniq ko'rsatish imkonini beradi. Ushbu qurollarni biz keyingi darsda ko'rib chiqamiz.
Faqat ketma-ket bajarilishi kerak bo'lgan ikkita vazifa misolini toping.
Faqat parallel bajarilishi kerak bo'lgan ikkita vazifa misolini toping.